问题标签 [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 投票
6 回答
35243 浏览

flutter - 在此小部件上方找不到正确的提供程序

我在使用 Flutter Provider 时遇到问题...我的流程是这样的:登录用户 id 传递给新的小部件后 -> 从那里它预先保存到数据库,然后重定向到新的小部件(仪表板)。

这是登录后小部件的代码:

这有效:

但这导致了一个问题:

在仪表板小部件中,我正在创建这个:

在 UserRepository 我有这个:

我知道这个主题已经解决了问题,但找不到适合我的问题的任何东西。

0 投票
3 回答
5636 浏览

flutter - 提供者与 InheritedWidget

我错了吗,或者如果我们只是想向下传递一个值WidgetProvider只是InheritedWidget一个dispose方法?

0 投票
4 回答
12521 浏览

flutter - 提供者与 Get_it

在寻找 Flutter 的依赖注入解决方案时,我发现了两个很棒的库:providerget_it.

据我所知,provider它有更多的样板,但它非常适合 Flutter ,一旦注入的值发生变化,就可以Consumer重建树的某些部分。Widget

get_it另一方面更直接,更易于使用,并且不依赖于 Flutter,因此可以与任何 Dart 代码一起使用。

它们之间是否还有更多的区别和限制?我知道这有点固执己见,但 Flutter 太新了,公开注册好处、副作用和陷阱是件好事。

0 投票
2 回答
3751 浏览

mvvm - 提供者与 ViewModel

了解更多关于ProviderandChangeNotifier架构的信息,我发现它与旧的良好 MVVM 架构非常相似,其中 a是WidgetView 并通过 a和 a链接来通知更改。ViewModelChangeNotifierConsumerProvider

那么为什么不将这称为 Flutter 的 MVVM 呢?这两种架构之间有什么实际区别吗?

0 投票
1 回答
369 浏览

flutter - 基于身份验证状态的 Flutter Navigation

我正在构建一个带有用户身份验证的 Flutter 应用程序(firebase 等等),并希望为经过身份验证和未经身份验证的用户提供两组路由:

  • 未经身份验证的用户: /login /register ...

  • 经过身份验证的用户:/home ...

我试图在顶部小部件上有一个类似这样的开关:

(我在树的顶部得到了_usera 的值ChangeNotifierProvider)但显然不可能有 2 个顶级导航器。

其次,我尝试在_generateRoute函数中按下开关,但有一些缓存:重建树时(例如_user.status更改时),_generateRoute不会再次调用函数,因此不起作用。

你如何解决这个问题?

0 投票
1 回答
1802 浏览

flutter - 在执行 Widget 状态构建时导航

我正在构建一个简单的 Flutter 应用程序。它的启动屏幕确定用户是否登录,并根据它重定向到登录或主/主屏幕之后。

我的启动屏幕是一个StatefulWidget,它的状态如下图所示。它使用扩展的 ViewModel 类ChangeNotifier(它的代码无关紧要,所以我没有包含它)。

ViewModel 发出以下三种状态之一:

  • LaunchInitial:默认状态。
  • LaunchLoginPage:表示应该显示登录页面。
  • LaunchMainPage:指示应显示主页面。

LaunchInitial 状态处理得很好,屏幕上会显示一个进度条。但是其他 2 个状态会导致应用程序崩溃。抛出以下错误:

似乎在build执行消费者方法时尝试重定向到另一个屏幕会导致此问题。这样做的正确方法是什么?

谢谢!

0 投票
2 回答
21535 浏览

flutter - 寻找提供者上下文的颤振问题

我对 Flutter Provider 模式有疑问。将用户重定向到新屏幕后,找不到提供程序。

根据我之前的问题(在此小部件上方找不到正确的提供者),我编写了以下代码:

我做了同样的事情,但我再次收到错误消息,指出它无法在此小部件 ( NewRouteBody) 上方找到正确的提供程序。

试图以某种方式修复它,谷歌搜索了几个小时的答案,但没有成功......

任何帮助表示赞赏。

编辑

这是UserRepository包含模式:

编辑2:

带有 ChangeNotifier 的代码片段:

0 投票
1 回答
1662 浏览

flutter - 如何在 onGenerateRoute 中使用提供者?

如何在 onGenerateRoute 中使用我的 UserProvider?我想检查用户是否使用 UserProvider.isLogged() 进行记录,但是当我尝试获取 Userprovider 时,我必须传递路由器中没有的上下文。

我已经尝试将 generateRoute 更改为非静态并通过构造函数将上下文传递给路由器,但它会抛出错误。

主要.dart

路由器.dart

===我的尝试===

主要.dart

路由器.dart

这个“我的尝试”给了我错误。我怎样才能做到这一点?“在此 MyApp 小部件上方找不到正确的 ProviderProvider>。”

0 投票
1 回答
7270 浏览

flutter - 使用 StreamProvider 的颤振提供者 MultiProvider

我正在使用 Provider (provider: 3.0.0+1) 开发一个 Flutter 应用程序。我正在使用带有控制器的 StreamProvider 的 MultiProvider。但我总是遇到错误。

下面是我的代码

主要.dart

RecipeStreamService.dart

但我总是收到这个错误:

行:main.dart 中的 20:80 是 (RecipeStreamService().controllerOut)

****** 更新 ******

将 Multiprovider 更改为以下代码

同样在我使用它的 HomePage.dart 中,我有

现在,recipeService 总是以 null 的形式出现

谢谢

0 投票
2 回答
7038 浏览

flutter - Flutter Provider 不会重建小部件

这是我的一段代码,但请在下结论之前阅读问题:

所以我对提供者有点陌生,而且我已经习惯了 Bloc,我的 api 曾经收到一些调用提供者并设置模型;

编辑:这里的供应商 256 行与“重新安排”有关...

重新编辑:最重要的是:

我期待“消费者”重建我的小部件,但没有!

我确定数据在那里,因为小部件位于旋转木马内,一旦我移动它,它就会正确重建。

我错过了什么?谢谢你

重新编辑:这是另一个轮播卡的示例,其中提供者可以快速工作并且实时应用更改