问题标签 [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.
android - ListView 项目的 Flutter Provider 模式
我正在尝试构建一个 ListView,其中使用提供者/消费者模式提供每个项目的状态。可以使用按钮添加项目并通过点击它们来删除它们。
我有两个状态类:
- ListState保存一个字符串列表(那些字符串将显示在列表中)
- ListItem保存每个项目的状态。
这种方法效果很好,并且 ListView 包含预期的项目。但是,如果项目被删除并添加,则 ListState 的列表包含正确的项目。在 ListView 中显示了一个奇怪的状态:
这是我的小部件,其中包含 Scaffold 和 ListView:
ListItemWidget 使用项目本身的状态和列表的状态。在 onTap 事件中,当前项目从列表中移除:
两个状态类在这里:
节点:同样的效果发生在 GridView 上
flutter - 如果我处理数据的类很少,应该使用 Provider 吗?
Provider
我阅读了文档,并查看了很多示例,但如果我需要访问多个类中的数据,我仍然不明白应该使用。主要问题 -context
在小部件之外不存在。
所以可能我不理解提供者的概念?这是我的意思的小例子:
和
我遇到了这个问题,我不知道如何解决它。
flutter - Flutter:带有初始网络请求的 ChangeNotifierProvider
我有一个代表电影列表的小部件,在我的模型中,我有 getMovies() 函数,它从网络请求中检索电影列表:
然后从小部件中,我想根据请求的状态构建布局:
问题是,如何在小部件初始化的一开始就触发网络调用 getMovies() ?我试图在不同的点手动调用 getMovies() 方法,但我有一个错误,或者每次小部件调用其 build() 方法时调用都会重复。
提前致谢。
flutter - 我什么时候应该创建单独的 Provider 类?
我有处理数据的课程。我有两个选择。1. 直接注册为Provider:
- 创建 wrapper-provider 类。并将其用作提供者。
我什么时候应该使用第一个变体,什么时候应该使用第二个?
flutter - 为什么模型不能使用提供者访问另一个模型?
我想这样做(不可能):
似乎建议是使用ChangeNotifierProxyProvider
但这似乎非常低效。ChangeNotifierProxyProvider
如果我还没有在 UI 中使用这个值,为什么我必须创建另一个层?我只想在这里混合Model1
和Model2
业务逻辑。
感谢帮助!
flutter - 找不到正确的提供者 - Flutter
当我弹出 InApp() 类时,我尝试修改 numberOfCoins 变量。但我有以下错误:
[VERBOSE-2:ui_dart_state.cc(148)] 未处理的异常:错误:在此 FantasyNbi 小部件上方找不到正确的提供程序
要修复,请:
- 确保 Provider 是该 FantasyNbi 小部件的祖先 * 向 Provider 提供类型 * 向 Consumer 提供类型 * 向 Provider.of() 提供类型
- 始终使用包导入。例如:
import 'package:my_app/my_code.dart'; * Ensure the correct
上下文`正在被使用。
flutter - 使用 ChangeNotifierProxyProvider 的设置器错误
我正在尝试将字符串从Model1
使用Model2
传递ChangeNotifierProxyProvider
,但它给出了错误:
'Model2'类中没有名为'string'的setter</p>
型号1:
ChangeNotifierProxyProvider:
模型2:
感谢帮助!
flutter - 如何访问 showModalBottomSheet 中提供的 (Provider.of()) 值?
我在一个小部件树中有一个 FloatingActionButton ,它有一个BlocProvider
from flutter_bloc。像这样的东西:
打开一个模态底部表:
我正在尝试SomeBloc
使用BlocProvider.of<SomeBloc>(context)
inside访问,TheBottomSheet
但出现以下错误:
我尝试使用https://stackoverflow.com/a/56533611/2457045BottomSheet
中描述的解决方案,但仅适用于ModalBottomSheet
.
注意:这不限于BlocProvider
or flutter_bloc
。提供程序包中的任何提供程序都具有相同的行为。
如何访问BlocProvider.of<SomeBloc>(context)
内部showModalBottomSheet
?
如果无法做到这一点,如何使https://stackoverflow.com/a/56533611/2457045解决方案适应模态底页?
firebase - ChangeNotifier 过早地处理模型
我正在使用 Firestore 事务来避免添加超过 1 个用户聊天的竞争条件。如果事务超时,我会显示错误对话框。
但是,当我将此逻辑移至Model2
with ChangeNotifier
(and Provider
) 时,它现在显示错误:
未处理的异常:处理后使用了 Model2。一旦在 Model2 上调用了 dispose(),就不能再使用它。
(Firestore 事务没有问题。这是预期的):
PlatformException(9,事务重试失败。:事务中读取的每个文档也必须写入该事务中。,null)
好像ChangeNotifier
打电话dispose()
太早了?
这意味着它不允许我处理竞争条件的错误,因为它已经被处理了。
模型:
提供者(在有状态的小部件中):
有谁知道解决方案?
谢谢!
更新:
fetchData();
如果我之前从build
方法中删除,问题不会抛出ChangeNotifierProxyProvider
。
但是为什么这可以解决问题?
flutter - 如何将提供者添加到第二个小部件树?
我尝试按照这个答案将提供程序添加到第二个小部件树(因此可以从函数调用提供程序)。但我得到错误:
[VERBOSE-2:ui_dart_state.cc(148)] 未处理的异常:错误:在此页面小部件上方找不到正确的提供程序
当然,我Model2
在其他小部件树中提供了正确的,所以它有祖先。
相同的第一个小部件StatefulWidget
:
第二: