Код: Выделить всё
**LoginController**
import 'dart:convert';
import 'package:akin/api/api_services.dart';
import 'package:akin/model/user_model.dart';
import 'package:akin/view/screens/dashboard_bottom_navigation_screen.dart';
import 'package:flutter/cupertino.dart';
import 'package:get/get.dart';
import 'package:get/get_rx/get_rx.dart';
import 'package:http/http.dart';
class LoginController extends GetxController{
Rx loading = false.obs;
var userList = {}.obs;
final emailController = TextEditingController().obs;
final passwordController = TextEditingController().obs;
Future loginAPI() async {
Map body = {
"email" : emailController.value.text,
"password" : passwordController.value.text
};
var dataEncode = jsonEncode(body);
string url = "API endpoint";
final response = await post(Uri.parse("url"),
body: dataEncode
);
var loginData = jsonDecode(response.body);
if(loginData['status']==200){
Get.snackbar(loginData['msg'],"Thank You");
Get.off(()=> DashboardBottomNavigationScreen());
userList.value = loginData['data'];
// print(userList);
//return userModelFromJson(response.body);
}else{
Get.snackbar(loginData['msg'],"Invalids Credential");
}
throw{
Get.snackbar("Error", "APi error")
};
}
}
Код: Выделить всё
**HomeScreen**
// Outside the build method
final controller = Get.put(LoginController());
body : Container(
width: wi*1,
child: Column(
children: [
SizedBox(height: he*0.01,),
Container(
height: he*0.06,
width: wi*1,
color: lightBlue,
child: Obx(() {
return Center(
child: Text("Welcome "+controller.userList['first_name'],style: TextStyle(
color: white,
fontSize: 25,
fontFamily: "Roboto"
),),
);
}
),
);
Код: Выделить всё
**Json **
{
"status": 200,
"msg": "Logged in successfully",
"data": {
"id": 70,
"salutation_id": 1,
"countrycode_id": 77,
"first_name": "****",
"last_name": "****",
"mobile": "0000000000",
"email": "demo@gmail.com",
"password": "123456789",
"user_type": 3,
"department_permission": null,
"created_date": "2024-07-08",
"created_time": "01:16:30 PM",
"updated_date": null,
"updated_time": null,
"status": 1,
"del_status": 1,
"token": "5626748485989555134f4e8b484cda72"
}
}
Может кто-нибудь объяснить логику GetxController?
все, что я мог сделать
Подробнее здесь: https://stackoverflow.com/questions/787 ... state-obxs