我知道 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/