단순형 : GetBuilder를 사용한다.
반응형 : Obx()를 사용한다. 변수선언은 var 혹은 RxInt로 선언한다.
플러터 기본코드를 사용하여 increase가 잘 되는 것을 확인.
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class Simplecontroller extends GetxController {
int counter = 0; // 단순형 상태관리
// var counter = 0.obs; // 반응형 상태관리
void increase() {
counter++;
update();
}
}
void main() {
runApp(const GetMaterialApp(home: MyApp()));
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'GetX Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(title: 'GetX Demo Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
final Simplecontroller sc = Get.put(Simplecontroller());
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
const Text(
'Simple state managing',
),
GetBuilder<Simplecontroller>(builder: (context) {
return Text(
'${sc.counter}',
style: TextStyle(fontSize: 20),
);
}),
// const Text(
// 'Complex state managing',
// ),
// Obx(
// () => Text(
// '${sc.counter}',
// style: TextStyle(fontSize: 20),
// ),
// ),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: sc.increase,
tooltip: 'Increment',
child: const Icon(Icons.add),
), // This trailing comma makes auto-formatting nicer for build methods.
);
}
}
'재개발' 카테고리의 다른 글
Figma - Bottom Navigation (1) | 2023.01.21 |
---|---|
FlutterFlow (0) | 2023.01.09 |
새로운 상태관리, GetX (0) | 2023.01.09 |
출시 완료. ㅋ (0) | 2023.01.08 |
출시 1차시도 실패. ㅋ (1) | 2023.01.07 |