android - Flutter:当我可以使用全局变量并改用 setState 时,状态管理库需要什么?

标签 android flutter dart state state-management

我知道 bloc pattern 或 getX 会提供额外的功能,而不仅仅是 flutter 中的状态管理,但我主要担心的是为什么我应该使用 bloc 或 getX 或任何其他状态管理库,而不是仅仅将 setState 与全局变量一起使用?

我也明白,如果我从子类更新全局变量的值并导航回父类,那么它的状态将不会更新,但为了解决这个问题,我只是调用了父类的 setState()子类。我的方法有什么问题吗?如果有,那又是什么?

最佳答案

每当您调用setState() 函数时,您的整个Stateful 或Stateless Widget 将再次重建。它会使您的应用程序的性能降低。

例如: 您有一个像 Following 这样的无状态小部件

Scaffold(
 body: Column(
  children: [
   Container(
    child: Text(SomeText);
   ),
   FlatButton(
    onPressed: (){
     seState({
      //change Text Function
     });
    }
   )
  ]
 )
)

在这里,当您单击按钮时,它的功能是更改 SomeText 的值,现在这些所有代码都将重建,是的,它用新值替换 SomeText。但它不仅改变了它,而且重建了整个小部件来改变它。

这里不是setState() 方法,如果您使用任何状态管理库,那么它只会改变 SomeText 的值而不会影响其他小部件。

作为初学者你可以尝试Provider

关于android - Flutter:当我可以使用全局变量并改用 setState 时,状态管理库需要什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67524726/

相关文章:

Android webView : check internet connectivity, 持续,直到加载 HTML

wordpress - 在 flutter 中向wordpress rest api发布请求

flutter/Dart :How to extract email and phone number from a string in Flutter

flutter - showModalBottomSheet()未在flutter中打开底部模态

安卓.Views.InflateException : Binary XML file line #1: Error inflating class toolbar

android - 在 RxJava 中组合 API 响应,其中一个 API 返回一个列表

firebase - 如何获取搜索结果中显示的匹配用户列表[Flutter]

flutter - 用户完成 Web 表单后如何自动返回 Flutter 应用

class - Flutter类继承

java - Android 中 DisplayMetrics 声明错误中的 getWindowManager 错误