【发布时间】:2021-11-06 20:54:14
【问题描述】:
大家好,我在 getx 状态管理方面需要帮助, 我有一个布尔值加载默认情况下它是假的,之后它会在加载数据后改变
RxBool loading=false.obs;
List<String> texts =<String>[].obs;
getData()async {
print('loadimg :' + loading.value.toString());
loading=true.obs; print('loadimg :' + loading.value.toString());
var result = await http.get(Uri.parse(main_url));
print(result.statusCode.toString());
var data = json.decode(result.body);
data.forEach((element) => texts.add(element["title"]));
print(data);
loading=false.obs;
print('loadimg :' + loading.value.toString());
}
如果它是真的我需要检查这个值我显示一个小部件否则我显示另一个小部件 但是当我将此布尔值调用到第二个屏幕时,它总是正确的
class _HomePageState extends State<HomePage> {
PostController controller = Get.put(PostController());
@override
void initState() {
// TODO: implement initState
super.initState();
controller.getData();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('App'),),
body:controller.loading.isTrue? Center(child: CircularProgressIndicator()): ListView.builder(itemBuilder: (context,index){
return Card(child: ListTile(title: Text(controller.texts[index],style: TextStyle(color: Colors.black,fontSize: 24),)));
},itemCount: controller.texts.length,),
);
【问题讨论】:
标签: flutter api flutter-getx