您应该将状态值放在 Riverpod 的啥位置?

Posted

技术标签:

【中文标题】您应该将状态值放在 Riverpod 的啥位置?【英文标题】:Where should you place the state value in Riverpod?您应该将状态值放在 Riverpod 的什么位置? 【发布时间】:2021-06-08 11:54:32 【问题描述】:

访问 StateProvider 或 StateNotifierProvider 的状态:

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

int count = watch(counterProvider).state;

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

watch(myNotifier.state)

有什么区别?

【问题讨论】:

这能回答你的问题吗? Flutter changing Text value using RiverPod State management 【参考方案1】:

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

第一种情况:

watch(counterProvider).state

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

第二种情况:

watch(counterProvider.state)

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

【讨论】:

谢谢,如果您认为问题正确,请将问题标记为正确

以上是关于您应该将状态值放在 Riverpod 的啥位置?的主要内容,如果未能解决你的问题,请参考以下文章

我应该将 javascript 库放在 Grails 应用程序的啥位置?

根据 MVP 模式,我应该将图像下载逻辑放在 Android 上的啥位置?

我应该将我的图像放在我的 iPhone 项目中的啥位置?

我应该将 SQL 文件放在我的 Java 项目中的啥位置?

我应该将瞬态域类放在 grails 应用程序中的啥位置?

我应该将 web.config 文件放在 Azure Web Apps for Containers 的啥位置?