拥有 RiverPod 时是否应该使用 setState

Ler*_*rex 4 dart flutter riverpod

我想知道,自从我开始使用 RiverPod 以来,我是否根本不应该使用 setState 并将几乎所有内容都放在 StateNotifierProvider 中

小智 8

是的你可以。您需要了解有两种类型的状态:

  • 临时(本地):仅包含在单个小部件中,不用于在不同组件之间传递信息。setState对于此类情况,您应该使用内部状态变量。就像 @Ruchit 在上面的评论中所说的那样,一个很好的例子是复选框、开关、下拉菜单。或者,如果您想根据某些数据隐藏/显示某些内容。

  • 全局:适用于在层、组件或小部件之间传递的任何信息,并且应该可以跨不同屏幕访问和同步。对于这些情况,您应该使用状态管理解决方案ProviderRiverpod例如 等。一些示例是:

    • 将商品添加到购物车。
    • 更新收藏夹列表。
    • 发送数据到网络层进行http调用等。