flutter - 如何访问 HookWidget 中的 StateNotifier 状态?
问题描述
我们可以创建一个 StateNotifierProvider
这样的:
final provider = StateNotifierProvider((ref) => CounterNotifier());
要访问 中的提供者HookWidget
,我们可以useProvider
这样使用:
final counterModel = useProvider(provider);
但是如何获得状态?下面的代码曾经工作到去年,但现在不起作用:
final counterModel = useProvider(provider.state);
现在它说 getter 状态没有定义。那么如何进入状态呢?
解决方案
从 Riverpod 0.14.0 开始,我们使用 StateNotifier 的方式有点不同。
现在,状态是暴露的默认属性,所以要监听状态,只需:
final counterModel = useProvider(provider);
要访问 StateNotifier 上的任何功能等,请访问通知程序:
final counterModel = useProvider(provider.notifier);
现在,当我们创建 StateNotifierProviders 时,我们包含 StateNotifier 的状态类型:
final provider = StateNotifierProvider<CounterNotifier, CounterModel>((ref) => CounterNotifier());
在此处查看更多关于 0.13.0 -> 0.14.0 的变化。
推荐阅读
- javascript - 如何在c#中取消文件复制?
- python - 在 Python 3.5.2 上安装 matplotlib | Ubuntu 16.04 LTS
- php - PHP proc_open 调用程序并获取屏幕截图
- excel - 在不破坏引用的情况下从 MS Access 查询中刷新 Excel 数据?
- php - 获取嵌套对象内的值
- javascript - 数据表右对齐
- typescript - 可观察的 - 地图/连接
- javascript - 如何制作一个可选调用的函数?
- javascript - Next.js - React.js - 表达:为什么 getInitialProps() - 在使用“浅层 - 路由”时每次都被调用?
- c# - 如何使用本地 SQL Server 实例在外部硬盘驱动器上创建数据库