如何访问 HookWidget 中的 StateNotifier 状态?
How to get access to StateNotifier state in HookWidget?
我们可以这样创建一个 StateNotifierProvider
:
final provider = StateNotifierProvider((ref) => CounterNotifier());
要访问 HookWidget
中的提供程序,我们可以这样使用 useProvider
:
final counterModel = useProvider(provider);
但是如何获取状态呢?下面的代码过去一直工作到去年,但现在不工作了:
final counterModel = useProvider(provider.state);
现在显示 getter 状态未定义。那么如何获取状态呢?
从 Riverpod 0.14.0 开始,我们使用 StateNotifier 的方式有点不同。
现在,state 是默认 属性 公开的,所以要监听 state,只需:
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 的变化 here。
我们可以这样创建一个 StateNotifierProvider
:
final provider = StateNotifierProvider((ref) => CounterNotifier());
要访问 HookWidget
中的提供程序,我们可以这样使用 useProvider
:
final counterModel = useProvider(provider);
但是如何获取状态呢?下面的代码过去一直工作到去年,但现在不工作了:
final counterModel = useProvider(provider.state);
现在显示 getter 状态未定义。那么如何获取状态呢?
从 Riverpod 0.14.0 开始,我们使用 StateNotifier 的方式有点不同。
现在,state 是默认 属性 公开的,所以要监听 state,只需:
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 的变化 here。