问题标签 [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.
flutter - 为什么我的“数据”。“数据”没有使用 ChangeNotifierProvider 在 ChangeNotifier 类中更新?
我是新来的。我想问为什么当我的文本字段的 onChange 没有触发时:“Provider.ofContext).updateData(newString);”。我的 Provider.of(context).data 的值没有更新,并且使用 2 个打印语句,始终只打印出“call1”。
这是代码: import 'package:flutter/material.dart'; 导入“包:提供者/provider.dart”;
flutter - 颤振提供者
尝试为新提供者更新此内容 - 更改了第一个要创建的构建器,但它给出了无返回错误。谢谢
用户资源库
flutter - TabBar 和 ChangeNotifierProvider 的一个恼人问题
想象一下这样的场景。
例如:一大堆不同类型的电影。这个想法是一个 TabBar,每个 Tab 都包含一个类型的电影列表。在这种情况下, a ChangeNotifier
egMoviesBloc
将非常适合需要,ChangeNotifier
与 无关Genre
。在每个 TabBarView 子视图中,ChangeNotifierProvider.value
这里的使用都是错误的,因为每个选项卡都需要保持自己的MoviesBloc
状态,所以我将为每种类型提供一个ChangeNotifierProvider
ofMoviesBloc
然后Consumer
收听它。我把它们放在一个名为MoviesBlocView
.
结果: - 如果按顺序滑动每个选项卡,则没有错误。- 如果刷大量的标签。例如:突然从第一个选项卡到最后一个选项卡(例如:有 20 个选项卡),控制台会抱怨重用已处理,ChangeNotifier
尽管每个选项卡都是ChangeNotifier
单独创建的。
重现代码
movies_bloc.dart
movies_bloc_view.dart
main.dart
更新:
- 如果我们使用 wrapper ,无论是否在创建
MoviesBlocView
时调用,控制台仍然会抱怨getMoviesWithGenre
MoviesBloc
- 如果我们不使用
MoviesBlocView
,- 尝试
getMoviesWithGenre
在MoviesBloc
创建时调用时,控制台会抱怨。奇怪的是现在它有一个不同的错误日志
- 尝试
- 当我们不在创建时调用时没有错误
getMoviesWithGenre
,MoviesBloc
但这没有任何意义,因为如果我们不做这样的级联,那么我不知道如何做,例如在创建时获取请求。
任何帮助表示赞赏!
更新
经过一番调试,我发现这是因为 TabBar 的奇怪行为。它也尝试预加载最近的选定选项卡或其他东西,然后在同一个选项卡中连续处理它,而不是一次,两次。
正如 Remi 指出的那样,我需要验证我MoviesBloc
在处理它时不会调用 notifyListeners(),在我将此验证添加到我的MoviesBloc
工作正常之后
但这不是我所期望的行为,MoviesBloc
因为我在创建时调用了该函数,因此我永远不会想象它会在处理该函数后调用该函数。
在这一点上,我真的不知道 TabBar 和 TabBarView 到底发生了什么。如果有人能解释为什么 TabBar 会这样做,我将不胜感激!
flutter - Flutter Provider:如何监听类字段内部的类字段变化?
给定以下 Dart/Flutter 类结构:
我正在尝试听的变化,A.element1.x
但问题是,B 类的设置者不能调用notifyListeners()
A 类的,所以要么我在听 A 并且不会注意到变化,要么我正在听 B 并且我正在失去 A 的上下文。
我在我的 Flutter 项目中使用 Provider 包。但我不确定,如果我误解了 Provider 包或 ChangeListeners 的概念。无论哪种方式,我都无法找到一个优雅的解决方案。
是否有可能从 A 类覆盖 B 类的设置器?我显然可以为每个 element1 和 element2 字段(x,y)实现一个函数。但我猜这不是好的代码风格。
flutter - 如何让我的更改通知器触发我的警报对话框?
我有一个通知服务,它是一个更改通知器。当服务收到通知时,它会通知所有侦听器。我想在收听者收到通知时显示一个对话框。所以我在我的构建方法中执行以下操作
这是shownotification方法
所以但这会引发错误,因为我想在构建时构建对话框Unhandled Exception: setState() or markNeedsBuild() called during build.
我确实喜欢使用更改通知提供程序。那么我怎样才能使这项工作呢?
flutter - 在 ChangeNotifierProvider 中使用双点 (..) 运算符/级联
为什么我们必须这样调用AppStateModel()..loadBrands()
,级联如何帮助我们?
android - Flutter中的参数类型'Widget Function(BuildContext)'不能分配给参数类型'Widget Function(BuildContext,Widget)'错误
这是一个代码:
上面代码中的“builder: (_) => UserRepository.instance()”行显示错误
参数类型“Widget Function(BuildContext)”不能分配给参数类型“Widget Function(BuildContext, Widget)”
每当我运行程序时,它都会显示
在此 LoginPage 小部件上方找不到正确的提供程序
用户存储库代码:
请帮忙
这是一个登录页面代码:
flutter - ChangeNotifierProvider 不会创建新的 ChangeNotifier 实例
我有一个平板电脑的主从页面。
当我在列表中选择一个项目时,我想更改详细信息页面。
所以我写了这样的代码,
但是,建造者收到的模型总是相同的值。
因此,更改用户选择不会更改详细信息屏幕。
如何创建新模型?
谢谢你。
[编辑] 这样的 UserListPage 会通知用户选择
flutter - 如何显示来自 ChangeNotifier 模型的对话框
在我的项目中,当ChangeNotifier
类收到状态时,它会设置一个布尔值并调用notifyListeners()
. 在我的主要build()
功能中,然后我检查挂起的布尔值并相应地显示对话框 - 但我只能通过在构建方法中给它一个小的延迟来显示对话框 - 似乎缺少上下文。
TL;博士:
有没有办法在ChangeNotifier
课堂上显示对话框?
flutter - notifyListeners() 不同时更新 UL
我是颤振的新开发人员,我使用颤振使应用程序失明所以我正在使用提供程序数据包,当蓝牙状态发生更改时我需要更改小部件 UL 我编写了这样做的代码,但在我的代码中,小部件 UL 在运行应用程序后更改第二次不同时更改我可以同时更改小部件吗
类 ChangeNotifier
类小部件
多提供者