提供者或BLoC模式背后的好处是什么?

时间:2019-10-27 09:58:55

标签: flutter

我们有很多状态管理解决方案,例如提供商和BLoC模式。但是,为什么我们需要它们?为什么我不能创建一个名为“ data.dart”的文件并在需要的地方导入该文件(data.dart),并对该文件(data.dart)中的变量和对象进行更改?这种模式有什么缺点吗?

2 个答案:

答案 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结合使用。