问题标签 [flutter-change-notifier]

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 回答
314 浏览

flutter - 带有提供者/作用域模型的变更通知器对于 Flutter 来说是一个糟糕的状态管理解决方案吗?

在我的 Flutter 项目中,我通常倾向于将 Provider 和 Change Notifier 一起用于依赖注入和状态管理的目的,因为我发现它比其他解决方案更直观且样板更少,而且我从来没有遇到过任何问题使用这种方法。但是最近,我阅读了很多关于其他状态管理方法的文章,并且我听到很多人说 Change Notifier 对于状态管理来说基本上是一个糟糕且性能较差的解决方案,特别是在大型应用程序中。就像我说的,我自己在 Provider 和 Change Notifier 上从来没有遇到过任何问题,但我仍然是初级开发人员,所以......无论如何,真的是这样吗?如果是这样,使用 Provider 和 Change Notifier 究竟会出现什么问题?目前有哪些针对 Flutter 的状态管理解决方案推荐?

0 投票
1 回答
267 浏览

flutter - 如何与 moor 一起实施 Change Notifier?

我正在尝试制作一个具有数据库的应用程序,它有一个学生表

现在我尝试将更改通知器与myDatabase一起使用,但在这里我无法扩展它,所以我尝试这样做

但是学生类显示错误。现在我不知道如何进行。

0 投票
0 回答
48 浏览

flutter - 模型类中的属性更改后更新 UI

我有一个来自服务器的 base64 图像列表,我有一个类可以将它们缓存在临时文件夹中。

由于缓存过程可能需要一些时间,特别是当图像很大时,图像不会在 UI 中显示。

我的模型类中有一个loading属性,起初是true,当缓存过程完成时它变成false.

这是我的缓存模型类:

这是我展示图片的地方:

这是我列表的模型类:

我在 redux 商店中有一个此类的列表。和项目。

但有时取决于图像大小,图像未在 UI 中显示和加载文本,甚至显示缓存已完成。

我想在loading属性变为false.

我尝试使用ChangeNotifier它并且它有效,但我认为这不是一个好方法:

缓存模型重写ChangeNotifier

在小部件中我试试这个:

我想我可能在大列表和弱电话中遇到内存问题。

正如文档中所说:

ChangeNotifier 针对少量(一或两个)侦听器进行了优化。添加和删​​除监听器是 O(N),调度通知是 O(N²)(其中 N 是监听器的数量)。

loading我将在成为之后删除侦听器false

0 投票
1 回答
471 浏览

flutter - Flutter - MultiProvider(ChangeNotifierProvider)不起作用

ChangeNotifierProvider 不起作用!我不知道是什么问题。谁能告诉我这段代码有什么问题?谢谢

我想将测试值传递到下一页。

这是主要功能和提供者

下一页:

类 ProductsNotifier

0 投票
1 回答
1767 浏览

flutter - Flutter 提供程序错误:当继承的小部件更改时

我不认为我与供应商打交道很好。什么是正确的代码?

错误信息是这样的。

当继承的小部件发生变化时,例如,如果 Theme.of() 的值发生变化,则重新构建其依赖的小部件。如果依赖小部件对继承小部件的引用在构造函数或 initState() 方法中,则重建的依赖小部件将不会反映继承小部件中的更改。

通常,对继承的小部件的引用应该出现在小部件 build() 方法中。或者,可以将基于继承的小部件的初始化放在 didChangeDependencies 方法中,该方法在 initState 之后以及此后依赖项发生更改时调用。

相关的导致错误的小部件是
MaterialApp
lib/main.dart:15
抛出异常时,这是堆栈

这是使用此提供程序的代码。

0 投票
1 回答
274 浏览

flutter - 如何使用 ChangeNotifier & Provide 或 BLOC 将整数值从一个地方获取到另一个地方?

我希望main.dart中的 pageValue 在 carousel.dart 中设置值,反之亦然

主要.dart

carousel_images.dart

我想从carousel.dart中获取_currentPageValuemain.dart中,并且还希望 main.dart 中的pageValue在carousel.dart中设置 _currentPageValue 的值?

0 投票
1 回答
684 浏览

flutter - 为什么 NotifyParser 的任何更改都不会使用 Provider / ChangeNotifier / Streambuilder 在 UI 中呈现,而是来自服务类

根据示例代码,来自 Ble_Service 的任何数据都可以通过提供程序在 UI 中呈现更改。但是,如果我通过 changeParserInput() 将任何数据从 Ble_Service 传递给 NotifyParser,json 字符串就会结束,但无论我遵循哪种模式,我都无法让 UI 识别任何状态已更改并更新超出初始种子的 UI价值。

Ble_Service -> UI //没问题 Ble_Service -> NotifyParserBloc -> UI //数据不成功。

为什么?(注释掉的代码来自尝试过的许多不同的变体)

ble_service

通知解析器

0 投票
1 回答
438 浏览

flutter - Flutter Popup Widget in a Provider - 什么上下文弹出它关闭?

我有一个 ChangeNotifierProvider 类,它为它的 Consumer Widgets 提供了一个弹出窗口。名为“showPopup”的弹出功能包含一个凸起的按钮,当按下该按钮时,用户使用 Google 登录,获取他们的信息,将其发布到 mysql 数据库并将其保存到共享首选项文件中。

我正在使用提供程序类来访问更改通知程序,因为一旦使用登录的用户信息更新了共享首选项,我就需要立即通知其他页面。

登录后,我希望弹出窗口自动关闭。不幸的是,我尝试使用的代码不起作用 - “上下文”一词下方有一条红线。据推测,这是因为弹出窗口是从不同的页面调用的。

我可以为“上下文”添加什么?或者有没有其他方法可以让这个弹出窗口在用户登录后立即自动关闭?

这是代码;

这是从有状态小部件的构建中调用弹出窗口的地方;

0 投票
1 回答
134 浏览

flutter - Provider.of<> 使用 ChangeNotifierProxyProvider 返回 null?

在下面的测试代码中,我有一个标志,用于确定是使用 ChangeNotifierProvider 还是 ChangeNotifierProxyProvider。当我按下这RaisedButton两种方法时,正确显示我的 GroupEditorPage。

Provider.of仅在使用 ChangeNotifierProvider 时返回我的 GroupEditorProvider 实例。当使用 Change ChangeNotifierProxyProvider 时,groupEditorProvider下面是null.

我使用 Provider 已经有一段时间了,但对 ChangeNotifierProxyProvider 还是陌生的,所以很可能不了解一些基本的东西。

0 投票
1 回答
543 浏览

flutter - Flutter/Dart - 在 Future 中使用 ChangeNotifier 或 setState 之类的东西?

我正在SocialProvider使用ChangeNotifier. 我希望它Consumer在用户登录并发布到网络上的数据库后更新其侦听器小部件。

目前,我正在调用一种Future方法,该方法在成功的 http 发布后将新值插入共享首选项文件,但这不会更新 UI,直到调用加载共享首选项的页面。

为了查看即时更新,有什么方法ChangeNotifier可以setStateFuture? 这是未来;

关于如何从方法中获得即时更新的任何想法Future