Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 使用颤振提供程序管理嵌套类的状态_Flutter_Dart_Provider_Flutter Provider_State Management - Fatal编程技术网

Flutter 使用颤振提供程序管理嵌套类的状态

Flutter 使用颤振提供程序管理嵌套类的状态,flutter,dart,provider,flutter-provider,state-management,Flutter,Dart,Provider,Flutter Provider,State Management,目前我正在开发体育赛事评分应用程序。 应用程序的结构如下所示: 现在,我正在尝试使用提供程序包包括状态管理 计分发生在小部件树的最底部,使用计数器,每个小部件根据用户在创建事件中的输入分别初始化命名模型,并在对话框中添加分区和玩家 我知道我需要为事件列表创建一个提供者,但是,我不确定如何构建其余的状态管理。到目前为止,我尝试通过在ChangeNotifier中混合,并将所有更改数据的方法移动到将使用notifyListeners()管理状态的位置,从而将每个模型转换为提供者。 然而,经过大量的

目前我正在开发体育赛事评分应用程序。 应用程序的结构如下所示:

现在,我正在尝试使用提供程序包包括状态管理

计分发生在小部件树的最底部,使用计数器,每个小部件根据用户在创建事件中的输入分别初始化命名模型,并在对话框中添加分区和玩家

我知道我需要为事件列表创建一个提供者,但是,我不确定如何构建其余的状态管理。到目前为止,我尝试通过在
ChangeNotifier
中混合,并将所有更改数据的方法移动到将使用
notifyListeners()管理状态的位置,从而将每个模型转换为提供者。
然而,经过大量的努力和搜索,我发现这并不是管理模型内部状态的最佳方法

理想的方法是什么?
我应该通过事件列表提供程序来管理状态,还是应该在单独的文件中为每个模型创建一个提供程序?如果是这样的话,怎么做?

我不太确定您的项目的全部范围,也不确定您的项目有多深入,但我强烈建议您查看BLOC库,作为一种替代状态管理解决方案,以便在您的案例中简单地管理状态

学习曲线相当低,有许多关于如何准确使用库的教程,还有一个事实,即BLOC从外部人员的角度来看对听众的依赖性要小得多,根据我的经验使用库,如果这是您正在努力解决的问题的话

这里有一个链接到


如果您仍然坚持使用Provider,我建议您在一个单独的文件中为每个模型创建一个Provider,原因有多种,例如分离关注点、易于管理状态以及每个不同模型的清晰性。

非常感谢您回答我的问题!我想问你们,若你们能详细说明为什么我应该使用bloc而不是provider,这是进行状态管理的首选方式?(至少根据我到目前为止的发现)好吧,这确实是个人喜好,什么对形势有利。对我来说,我发现BLOC的学习曲线很低,很健壮,而且对我来说更容易测试。它是健壮的,因为您可以很容易地根据输入到组中的输入预测每个事件的结果。但是,这么说并不意味着你不能在你的应用程序中使用多个状态管理解决方案,例如,我在一个应用程序中使用了几个状态管理解决方案,包括Provider和BLOC。因此,不要觉得您仅限于集团或提供商。您可以同时使用这两种工具,甚至还可以使用其他工具!另外,请不要忘记将答案标记为正确,以便将来的用户知道哪个答案解决了您的问题!:)嗨,你有没有想出解决办法?我的处境也一样。