您应该将状态值放在 Riverpod 中的什么位置?

Where should you place the state value in Riverpod?

访问 StateProvider 或 StateNotifierProvider 的状态:

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

int count = watch(counterProvider).state;

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

watch(myNotifier.state)

有什么区别?

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

第一种情况:

watch(counterProvider).state

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

第二种情况:

watch(counterProvider.state)

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