我必须向国家供货商说明.第二个参数(ListWithGlobalIDProvider)依赖于第一个参数(CurrentListProvider),但第一个参数是独立的.但给第二个Provider 增加价值会改变第一个Provider 的价值.我正在调用futterProvider内的listWithGlobalIDProvider.

final currentListProvider =
    StateProvider.autoDispose<BracketList>((ref) {
  final brackets = ref.watch(_currentUserBracketListFutureProvider).value;
  ref.keepAlive();
  return brackets ?? [];
});

final listWithGlobalIDProvider =
    StateProvider.autoDispose<BracketList>((ref) {
  final brackets = ref.watch(currentListProvider);
  final List<String> list = brackets;
  list.add(GlobalBracketID.globalBrackerID);
  ref.keepAlive();
  return list;
});
flutter_riverpod: ^2.2.0

我希望调用第二个stateProvider不会更改第一个提供程序的值.

推荐答案

如果我没理解错你的问题,你可以改一下行.

final List<String> list = brackets;

取而代之成为

final List<String> list = List<String>.from(brackets);

这将确保修改第二个提供程序不会更改第一个提供程序.

Flutter相关问答推荐

如何在Flutter的easy_translation包中链接嵌套的链接翻译?

在Riverpod ConsumerWidget中使用文本编辑控制器

Flutter 蜂窝-检索非基元数据类型列表

如何在容器小部件中的图像旁边添加文本?

有没有什么方法可以加快在Flutter 中加载Quill HTML编辑器的速度?

Flutter :执行com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction时出现故障

在使用FutureProvider时,我想显示用于加载的指示器,但无法自定义大小

集装箱堆放和定位时的高度问题

如何更改Flutter 中文本的混合模式?

构建上下文不能跨异步间隙使用

Flutter如何在容器外创建环形进度条

如何在Flutter中动态绘制一条从A点到B点的线?

Flutter:如何在 bottomsheet 中创建一个日期 Select 器,如下图所示

Cloud firestore:如何使用 map 对象创建和更新嵌套数组

按下 Command+W 时关闭窗口

如何从 Firebase `get()` 获取 `DocumentReference`

如何按值对列表中的 map 进行排序

在 Flutter 中更改高架按钮 OnPressed 的背景 colored颜色

如何在 flutter 中制作这种类型的扩展瓦片

Flutter 平台通道将多数据传递给 windows 功能