0

要访问 StateProvider 或 StateNotifierProvider 的状态:

有时在 Riverpod 文档中,在 watch 函数之后添加了 state 变量。

int count = watch(counterProvider).state;

但是,我使用 StateNotifier 的代码只有在我在 watch 中引用它时才有效。IE

watch(myNotifier.state)

有什么区别?

4

1 回答 1

3

在这两种情况下,使用提供者的小部件的行为会有所不同。

在第一种情况下:

watch(counterProvider).state

消费者将查看整个 counterProvider,如果有任何原因导致 NotifyProvider,它将被重建。

在第二种情况下:

watch(counterProvider.state)

消费者只查看状态变量,并且只有在状态发生变化并导致 NotifyProvider 时才会重建它。

于 2021-03-10T14:41:49.193 回答