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

flutter - 将提供程序包添加到 Flutter Web 项目时出错

我尝试将提供程序包添加到我的 Flutter Web 项目中,但出现以下错误:

因为每个版本的 provider 都依赖于来自 sdk 的 flutter any,这是 >forbidden 的,provider 是被禁止的。因此,由于 WebApplication 依赖于提供程序 ^3.0.0,版本解决 > 失败。

Flutter 用户应该运行flutter packages get而不是pub get. 进程以退出代码 69 结束

我尝试flutter packages get并将颤振升级到最新版本。运行flutter packages get时未显示错误,但当我尝试时webdev serve显示以下错误:

webdev 无法为此项目运行。在 >“C:\AppData\Roaming\Pub\Cache\hosted\pub.dartlang.org\provider-3.0.0”中找不到名为“pubspec.yaml”的文件。

我也看了广告https://github.com/flutter/flutter/issues/21338但没有解决我的错误。

我正在使用 Flutter(Channel beta,v1.6.3,在 Microsoft Windows [版本 10.0.17134.765],语言环境 de-DE)

0 投票
3 回答
26728 浏览

flutter - 如何在 statefulWidget 中使用颤振提供程序?

我正在使用 flutter_provider 进行状态管理。我想从 Api 加载页面(statefulwidget)加载的一些项目。我在页面开始时显示一个加载器,并希望在获取项目后显示它们。

PlayList.dart -

我的提供者是这样的-

这给出了一个错误 -

这是playList类的父类的build方法,包裹在一个changenotifier中,

因此,互联网上有关 flutter_provider 的所有示例都显示了无状态小部件上提供者的使用,其中状态更改发生在用户交互(如按钮单击)上。没有关于如何在 statefulWidget 中使用提供程序,以及在页面加载时必须在没有任何交互的情况下更新数据的情况。

我知道这种场景的streambuilder和futurebuilder,但想了解如何使用flutter_provider来完成。如何使用提供程序在 initState 中调用 fetchVideosList(在页面加载时)?这种情况可以/应该用 statelessWidget 处理吗?

0 投票
1 回答
1594 浏览

flutter - Flutter Provider - 使用 ProxyProvider 的循环依赖

我有以下服务:

  1. SecuredStorageService()
  2. ApiService({this.authService})
  3. AuthService({this.securedStorageService, this.apiService})
  4. RegisterService({this.apiService, this.securedStorageService})

这导致我写:

到目前为止,我可以说它看起来已经很乱了。但事实并非如此。当我运行该应用程序时,我收到以下错误:

在此处输入图像描述

那我怎么办?我在所有ProxyProvidersa之前添加Provider<AuthService>。但是,AuthService 被构建了两次!这失去了作为一个单一实例的全部意义(或者不是吗?)。

我的主要目标是像在 Angular 或 Laravel 中一样进行依赖注入。

0 投票
1 回答
931 浏览

firebase - Flutter:在 null 上调用了方法“[]”。流提供者

我有一个从 Firebase Firestore 读取的 StreamProvider,当文档中有数据时它可以正常工作,但如果还没有创建文档/集合,我会收到错误“方法 '[]' 被调用为空。” 它只是从firestore读取一个数字,如果有null我想默认为0。

我尝试使用 SteamProvider 的“initialdata”属性,设置为 0,但不确定我是否设置正确。我在想 StreamProvider 的“catchError”属性可能有效,但我在网上找不到任何示例。

请参阅下面的 StreamProvider,它位于 MultiProvider 下。下面是 PomosWeekly 类,它只是读取一个 int。

如果该位置有文档/字段,则流可以正常工作,但如果尚未创建文档,则错误,如果有错误,我只想返回 0。错误是“在 null 上调用了方法 '[]'。”

0 投票
1 回答
3787 浏览

sqlite - 如何在 ChangeNotifier 中使用 Futures?

我有一个sqlite从中读取数据的数据库。我也有一棵很长的小部件树。所以经过一番研究,我找到了providerFlutter 包。但我不知道如何在扩展类中使用 FuturesChangeNotifier或如何在我的小部件树的任何地方使用它?

0 投票
2 回答
9109 浏览

flutter - 如何在颤振中从 FutureProvider 获取数据

我正在尝试在使用 Provider 管理的颤振应用程序中实现本地数据库支持,现在我想让数据的检索遵循状态管理模式,但我一直未能做到。

我试图制作一个传统的提供程序来实现这一点,但是应用程序陷入了对数据库的请求循环中,所以经过一番搜索后我找到了 FutureProvider,但我找不到如何从正在加载的数据中获取快照

现在我的应用程序正在按我想要的方式运行,但不是它应该如何运行,我使用 FutureBuilder 直接从数据库中获取数据,但我知道它应该通过提供程序来,所以我想把它做对

0 投票
1 回答
923 浏览

firebase - Flutter 状态管理问题

我的问题与提供者模式/库有关。

我创建了一些状态类如下(我替换了内容/变量名称以保持简单)

然后我使用 multiprovider 来传递它(在小部件 init 中创建对象,它充当应用程序中所有内容的父级。)

然后在子小部件构建方法中使用

所有这一切都很好..

我的问题是当我开始使用导航推送时,我无法再访问该状态。

当我得到这个错误

我确实设法使用它来获得它

但是当我使用 navigator.pop() 弹出小部件时,无法使用该状态,因为它说它已被处置。我做错了还是我错过了什么?

对不起,如果我把这个弄复杂了。我不得不删除很多代码。

谢谢你的帮助 :)

0 投票
1 回答
1240 浏览

flutter - 如何更改 Flutter 中所选磁贴的边框颜色?

我有显示可用航班列表的磁贴列表。我想更改所选图块边框的颜色。目前,它会更改所有图块的颜色,而不仅仅是选定的图块。

我曾经provider保持状态

AppState.dart

这是根据状态进行绘图的地方

结果.dart

0 投票
1 回答
217 浏览

flutter - Provider 中是否有任何属性明智的 notifyListerners 选项?

我正在使用提供程序包进行状态管理的待办事项列表应用程序。在任务创建屏幕中,我有类似的小部件

  • 任务名称
  • 待办事项的类型
  • 任务颜色选择器
  • 日期和时间
  • 保存按钮

任务模型

我正在这样ChangeNotificationprovider使用

因此,每个小部件都将更改任务模型的各个字段,但我面临的问题是,每当小部件更新任务模型的字段时,所有小部件Consumer都在更新,就像每当我更新color字段时,应用程序将刷新不是唯一的颜色字段但所有其他领域。是否有任何其他方式来设计此提供程序架构,例如仅向特定字段侦听器发送通知?

这是我尝试过的。

我没有尝试将每个字段创建为单独的类和TaskChangeNotifier 。ChangeNotifier比如name字段变成这样

但这似乎是太多的样板代码。

0 投票
2 回答
127 浏览

flutter - 允许区分提供者

我正在用颤振和提供者模式构建一个应用程序。我有一个特定的 ViewModel,它提供了Provider.of<AddressBookModel>(context).

以及各自的 ViewModel

我面临的问题是,一旦我用 更改列表中的一个联系人对象toggleStarred(),提供者就会重建和重绘整个列表。我认为这不是必需的,因为只需要重建一个条目。有没有办法让提供者只负责一个列表项?或者有什么其他方法可以解决这个问题?