【问题标题】:How to get access to StateNotifier state in HookWidget?如何访问 HookWidget 中的 StateNotifier 状态?
【发布时间】:2021-04-18 18:53:02
【问题描述】:

我们可以像这样创建StateNotifierProvider

final provider = StateNotifierProvider((ref) => CounterNotifier());

要访问HookWidget 中的提供者,我们可以像这样使用useProvider

final counterModel = useProvider(provider);

但是如何获得状态呢?下面的代码曾经工作到去年,但现在不能工作:

final counterModel = useProvider(provider.state);

现在它说 getter 状态未定义。那么如何访问状态呢?

【问题讨论】:

    标签: flutter dart riverpod


    【解决方案1】:

    从 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 的变化。

    【讨论】:

      猜你喜欢
      • 2021-02-26
      • 1970-01-01
      • 2021-11-27
      • 1970-01-01
      • 1970-01-01
      • 2021-10-28
      • 1970-01-01
      • 1970-01-01
      • 2019-09-15
      相关资源
      最近更新 更多