https://medium.com/@mujababbas/getconnect-and-statemixin-in-flutter-getx-f744f52e870a
GetxController And StateMixin
Controllers are classes which holds all our business logic. All the variables and methods are placed here and can be accessed from the view.
GetxController comes with onInit() and onClose() methods. This allows us to completely avoid using StatefulWidget and write organized code.
StateMixin is a way to handle your UI state. To implement it, use the with to add the StateMixin<T> to your controller which allows a T model.
The change() method of StateMixin changes the State whenever we want. We just have to pass the data and the status.
Step 2 : To do this create a Class and extend it with GetController with StateMixin
https://chornthorn.github.io/getx-docs/docs/state/mixin-state/
Getx는 참 편리한 패키지이다. 좋냐 나쁘냐의 개념을 떠나서 편리한 건 편리하다고 말을 해야 하니까...ㅎㅎㅎ
개발 들어가면서 기존에 작업한 코드를 찬찬히 분석하고 있다.
그래서 만난 GetxController와 쓰이는 StateMxin을 정리해보았다.
기본적인 Getx 사용법은 다음과 같다.
model - String name; String age;
controller- Model model을 선언하고 model.obs;
view - obx( model)
요런식이다.
하지만 요런 방식도 있다.
선언
class Controller extends GetController with StateMixin<User>{}
사용
change(data, status: RxStatus.success());
//기타 다른 기능
RxStatus.loading();
RxStatus.success();
RxStatus.empty();
RxStatus.error('message');
ui 사용
class OtherClass extends GetView<Controller> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: controller.obx(
(state)=>Text(state.name),
// here you can put your custom loading indicator, but
// by default would be Center(child:CircularProgressIndicator())
onLoading: CustomLoadingIndicator(),
onEmpty: Text('No data found'),
// here also you can set your own error widget, but by
// default will be an Center(child:Text(error))
onError: (error)=>Text(error),
),
);
}
d
'Flutter-플러터 > 플러터 공부' 카테고리의 다른 글
Flutter - Http get, post (0) | 2023.09.01 |
---|---|
Flutter -trim() (0) | 2023.08.28 |
Flutter 3.0- Firebase CLI 연동하기 (0) | 2023.08.23 |
Flutter로 클라우드 메세지 사용하기 1 (0) | 2023.08.22 |
Flutter - dotenv (0) | 2023.08.21 |