final filterProvider = StateProvider<List<Map>>((ref) => [
      {'text': 'rating', 'onOrOff': true},
      {'text': 'km', 'onOrOff': true},
    ]);

我有这个FilterProvider.我正在try 更新‘onOrOff’的值.

ref.watch(filterProvider.notifier).state[i]['onOrOff'] = onOffVal;

当我这样做时,Riverpod不会立即更改值,我如何调整值并使Riverpod立即应用更改?

推荐答案

riverpod中,带有StateProviderstate被认为是不可变的.您不能修改它,需要重新分配它.

你能读懂

它通常用于:

  • expose immutable状态,该状态可在响应自定义事件后随时间更改.
  • 将修改某些状态的逻辑(也称为"业务逻辑")集中在一个位置,随着时间的推移提高可维护性.

riverpod's documentation年内

final filter = [...ref.read(filterProvider)]; // Copies the list.
filter[i]['onOrOff'] = onOffVal;
ref.read(filterProvider.notifier).state = filter;

Flutter相关问答推荐

Flutter bloc -如何使用BlocBuilder?

具有可变高度小部件的SingleChildScrollView内的列

Flutter:如何从Bottom Navigator中删除此内容

Android Emulator冻结,但在调整窗口大小时解冻

Flutter 隔离.使用多个参数运行

如何使页面浏览量达到活动页面所要求的高度?

带有图标抖动的自定义下拉按钮

如何使排内 children 的身高与其他排内 children 的身高相适应?

如何使DropDownMenu宽度等于TextFormfield?

Flutter - Stripe:类型List 不是类型Map 的子类型? method_channel_stripe.dart 中的错误:263

Riverpod 注册多少个 providers

我对 Flutter Apk 有疑问

这是使用导航功能处理从一页到另一页的移动的最佳方式

type '({bool growable}) => List' 不是类型转换中类型 'List' 的子类型

有什么方法可以将 ChangeNotifier 与 ValueListenableBuilder 一起使用

为什么 orientation == Orientation.portrait 总是正确的,尽管我的设备已经处于横向

在 flutter 中使用 Firebase 实时数据库数据创建无限滚动效果

如何在 IntroductionScreen 小部件 Flutter 中制作全屏渐变色

Flutter - 如何调用此函数?

单击列表视图导航到 Flutter 中的另一个页面