问题标签 [flutter-provider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6793 浏览

flutter - 如何将上下文传递给提供者的第二个小部件树

我尝试将上下文传递给第二个小部件树(在函数中),但出现错误:

尝试将 Provider 与 Listenable/Stream (Model2) 的子类型一起使用。这可能是一个错误,因为 Provider 不会在 Model2 更新时自动更新依赖项。相反,请考虑将 Provider 更改为处理更新机制的更具体的实现,例如: - ListenableProvider - ChangeNotifierProvider - ValueListenableProvider - StreamProvider

相同的第一个小部件StatefulWidget

第二(我从这里传递上下文):

0 投票
0 回答
930 浏览

flutter - 如何防止提供者处置模型?

在应用程序主页上,我设置了Model2对数据进行 API 调用的设置。然后用户可以导航到其他页面 ( Navigator.push)。但我想Model2在用户按下(_onBackPress())时进行 API 调用,以便刷新主页上的数据。当我打电话时,它给出了错误:

未处理的异常:错误:在此消费者小部件上方找不到正确的提供者

如果我添加Consumer到 Page2 它会给出错误:

错误:在此消费者小部件上方找不到正确的提供者

StatefulWidget在主页:

在第 2 页中:

0 投票
2 回答
584 浏览

flutter - 如何在有条件的情况下致电提供者?

在应用程序主页上,我设置了Model2对数据进行 API 调用的设置。然后用户可以导航到其他页面 ( Navigator.push)。但我想Model2在用户按下(_onBackPress())时进行 API 调用,以便刷新主页上的数据。

问题是 Model2 没有为所有用户初始化。但是,如果我调用final model2 = Provider.of<Model2>(context, listen: false);未初始化 Model2 的用户,则会出错。

我如何只能在有条件的情况下致电提供者?例如:if(user == paid)

StatefulWidget在主页中:

在第 2 页中:

替代方法(可能更简单):如何在上一页(主页)上调用提供者Navigator.of(context).pop();

TLDR:调用 API 的最佳解决方案是什么,以便在用户返回上一页时刷新数据(但仅适用于某些用户)?

0 投票
3 回答
10649 浏览

flutter - 如何通过导航器传递提供者?

我需要将 provider( Model2) 传递给homepageto,Page2因此当用户返回homepage( onWillPop) 时,我可以从 provider() 进行 API 调用Model2并更新homepage

但是当我打电话时_onPaidBackPress(context)出现错误:

未处理的异常:错误:在此消费者小部件上方找不到正确的提供者

StatefulWidget在主页:

在第 2 页中:

感谢帮助!

0 投票
2 回答
1755 浏览

flutter - 如何设置从另一个 StreamProvider 获取参数值的 StreamProvider?

我正在为我的应用程序使用 FirebaseAuth 和 Firestore。

'User' 是一个模型,它代表 Firestore 上的文档,并使用 FirebaseUser 的 uid 作为其 DocumentId。

为了获得“用户”,我必须从 FirebaseUser 传入 uid。

我的想法是设置一个 FirebaseUser 的 StreamProvider,然后设置另一个 User 的 StreamProvider,它以 FirebaseUser 作为参数。

但是发生了错误,我找不到这个问题的解决方案,任何建议都会对我很有帮助。

0 投票
1 回答
1560 浏览

flutter - Flutter:在 Mock 中模拟流时提供程序错误

我有一个包含流的块对象:

我正在尝试模拟这个对象,以便使用Mockito进行另一个测试:

然后我构建了一个通过提供程序包提供这个块的测试小部件:

但是当我执行测试时,此提供程序构造失败并出现错误:

在构建 Provider(dirty, state: _DelegateWidgetState#9ee17) 时抛出了以下断言:尝试使用具有 Listenable/Stream (Bloc) 子类型的 Provider。

这可能是一个错误,因为 Provider 不会在 Bloc 更新时自动更新依赖项。相反,请考虑将 Provider 更改为处理更新机制的更具体的实现,例如:

  • ListenableProvider
  • ChangeNotifierProvider
  • ValueListenableProvider
  • 流提供者

该应用程序运行正常,但测试失败,有什么帮助吗?

0 投票
1 回答
2751 浏览

flutter - 我可以用 Provider 包装 MaterialApp 小部件吗?

我是 Flutter 的新手,我正在尝试使用提供程序创建一个应用程序。我用 ChangeNotifierProvider 包装了 MaterialApp 小部件,该应用程序正常工作,我可以按预期使用提供程序。我需要知道这样做可以吗,我会遇到任何问题吗?

在所有示例代码中,他们在 MaterialApp 小部件的“主页”下使用 Provider。我在提供程序中使用了 MaterialApp。

0 投票
1 回答
138 浏览

flutter - 如何重新打包 Flutter 插件以用于 Flutter Web?

对于这种特定情况,我正在尝试在 Flutter Web 上使用 Provider,

但我确信这不会是最后一个颤振包

我将在颤振网络上使用,所以我试图理解

作为一般情况如何解决这个问题。

我遇到了这个问题

在 Flutter Web 中使用 Flutter 移动包

这个答案:

您还可以使用引用为 Flutter_web 重新打包的 Flutter 框架的库。像提供者一样被分叉[link]。您只能使用插件 atm。

据我了解,建议的程序是

  1. 重新包装
  2. 进口

虽然“叉子”是直截了当的,但觉得有必要问:

  • 如何重新打包 Flutter 插件以用于 Flutter Web?

因为这次我很幸运,凯文已经做了重新包装

先感谢您

0 投票
2 回答
558 浏览

flutter - 跨路线提供者,但在 MaterialApp 之后

我有一个需要访问的类MaterialApp context,但它也需要从所有路由进行全局访问。

要创建一个全局提供者,我可以用 包装MaterialAppProvider但这样的提供者无权访问context. 因此,我必须在MaterialApp.

我意识到我可以用提供者包装每条路线,因为它是无状态的,但我想知道是否有更好的方法来做到这一点。

提前致谢!

0 投票
1 回答
117 浏览

flutter - 如何从另一个提供者传递超过 1 个值的数据?

我正在使用提供程序颤振包,但我想从另一个提供程序获取数据,并且有一个使用ChangeNotifierProxyProvider. 但是我如何在属性中传递超过 1 个值,builder因为在官方文档中只使用 1 个值