问题标签 [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.
flutter - 在此小部件上方找不到正确的提供程序
我在使用 Flutter Provider 时遇到问题...我的流程是这样的:登录用户 id 传递给新的小部件后 -> 从那里它预先保存到数据库,然后重定向到新的小部件(仪表板)。
这是登录后小部件的代码:
这有效:
但这导致了一个问题:
在仪表板小部件中,我正在创建这个:
在 UserRepository 我有这个:
我知道这个主题已经解决了问题,但找不到适合我的问题的任何东西。
flutter - 提供者与 InheritedWidget
我错了吗,或者如果我们只是想向下传递一个值Widget
,Provider
只是InheritedWidget
一个dispose
方法?
flutter - 提供者与 Get_it
在寻找 Flutter 的依赖注入解决方案时,我发现了两个很棒的库:provider
和get_it
.
据我所知,provider
它有更多的样板,但它非常适合 Flutter ,一旦注入的值发生变化,就可以Consumer
重建树的某些部分。Widget
get_it
另一方面更直接,更易于使用,并且不依赖于 Flutter,因此可以与任何 Dart 代码一起使用。
它们之间是否还有更多的区别和限制?我知道这有点固执己见,但 Flutter 太新了,公开注册好处、副作用和陷阱是件好事。
mvvm - 提供者与 ViewModel
了解更多关于Provider
andChangeNotifier
架构的信息,我发现它与旧的良好 MVVM 架构非常相似,其中 a是Widget
View 并通过 a和 a链接来通知更改。ViewModel
ChangeNotifier
Consumer
Provider
那么为什么不将这称为 Flutter 的 MVVM 呢?这两种架构之间有什么实际区别吗?
flutter - 基于身份验证状态的 Flutter Navigation
我正在构建一个带有用户身份验证的 Flutter 应用程序(firebase 等等),并希望为经过身份验证和未经身份验证的用户提供两组路由:
未经身份验证的用户: /login /register ...
经过身份验证的用户:/home ...
我试图在顶部小部件上有一个类似这样的开关:
(我在树的顶部得到了_user
a 的值ChangeNotifierProvider
)但显然不可能有 2 个顶级导航器。
其次,我尝试在_generateRoute
函数中按下开关,但有一些缓存:重建树时(例如_user.status
更改时),_generateRoute
不会再次调用函数,因此不起作用。
你如何解决这个问题?
flutter - 在执行 Widget 状态构建时导航
我正在构建一个简单的 Flutter 应用程序。它的启动屏幕确定用户是否登录,并根据它重定向到登录或主/主屏幕之后。
我的启动屏幕是一个StatefulWidget
,它的状态如下图所示。它使用扩展的 ViewModel 类ChangeNotifier
(它的代码无关紧要,所以我没有包含它)。
ViewModel 发出以下三种状态之一:
- LaunchInitial:默认状态。
- LaunchLoginPage:表示应该显示登录页面。
- LaunchMainPage:指示应显示主页面。
LaunchInitial 状态处理得很好,屏幕上会显示一个进度条。但是其他 2 个状态会导致应用程序崩溃。抛出以下错误:
似乎在build
执行消费者方法时尝试重定向到另一个屏幕会导致此问题。这样做的正确方法是什么?
谢谢!
flutter - 寻找提供者上下文的颤振问题
我对 Flutter Provider 模式有疑问。将用户重定向到新屏幕后,找不到提供程序。
根据我之前的问题(在此小部件上方找不到正确的提供者),我编写了以下代码:
我做了同样的事情,但我再次收到错误消息,指出它无法在此小部件 ( NewRouteBody
) 上方找到正确的提供程序。
试图以某种方式修复它,谷歌搜索了几个小时的答案,但没有成功......
任何帮助表示赞赏。
编辑
这是UserRepository
包含模式:
编辑2:
带有 ChangeNotifier 的代码片段:
flutter - 如何在 onGenerateRoute 中使用提供者?
如何在 onGenerateRoute 中使用我的 UserProvider?我想检查用户是否使用 UserProvider.isLogged() 进行记录,但是当我尝试获取 Userprovider 时,我必须传递路由器中没有的上下文。
我已经尝试将 generateRoute 更改为非静态并通过构造函数将上下文传递给路由器,但它会抛出错误。
主要.dart
路由器.dart
===我的尝试===
主要.dart
路由器.dart
这个“我的尝试”给了我错误。我怎样才能做到这一点?“在此 MyApp 小部件上方找不到正确的 ProviderProvider>。”
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 的形式出现
谢谢
flutter - Flutter Provider 不会重建小部件
这是我的一段代码,但请在下结论之前阅读问题:
所以我对提供者有点陌生,而且我已经习惯了 Bloc,我的 api 曾经收到一些调用提供者并设置模型;
编辑:这里的供应商 256 行与“重新安排”有关...
重新编辑:最重要的是:
我期待“消费者”重建我的小部件,但没有!
我确定数据在那里,因为小部件位于旋转木马内,一旦我移动它,它就会正确重建。
我错过了什么?谢谢你
重新编辑:这是另一个轮播卡的示例,其中提供者可以快速工作并且实时应用更改