我们有很多状态管理解决方案,例如提供商和BLoC模式。但是,为什么我们需要它们?为什么我不能创建一个名为“ data.dart”的文件并在需要的地方导入该文件(data.dart),并对该文件(data.dart)中的变量和对象进行更改?这种模式有什么缺点吗?
答案 0 :(得分:0)
需要状态管理解决方案来更改数据。
想像一下data.dart文件中包含变量
String text = 'abc';
并且您有一个名为TextA的Text()小部件,它将文本变量作为输入。 此小部件最初将显示abc
现在您已经将此函数称为
void changeText(){
text = 'cba';
}
该函数将如何通知TextA,因为text的值已经更改?
当然可以使用setState((){});只要该函数是TextA的一部分,
但是如果小部件是ButtonA怎么办?
答案 1 :(得分:0)
类似于StatefulWidget,您可以使用setState()更改值来重建小部件,但是如果您希望子小部件中的按钮更改父小部件中的值怎么办?在这里,您需要使用provider来完全控制。
注意: 这是示例,但有多种用途。您可以将其与Firebase身份验证或Cloud Firestore结合使用。