首页 > 解决方案 > Flutter redux 更新特定状态变量而不影响其他变量

问题描述

我有这样的状态

class NameState{
    List name;
    dynamic title;
    NameState({this.title, this.name});
}

行动

class NameAction{
   List  showAction;
   NameAction(this.showAction);

}

像这样的减速机

NameState reducer(NameState state, dynamic action) {

 if (action is NameAction) {
  return NameState(
    name: []..addAll(action.showAction)
  );
}

 return state;

}

初始状态是这样定义的 initialState: new NameState(title: 'this is title', name: []), middleware: [thunkMiddleware]);

这是主要问题,

你可以看到我给标题变量一个静态字符串。它工作正常并且在所有页面中都可见。

但是一旦调用 reducer,这个标题就会得到一个 null 值。我不想将任何值传递给标题。它应该是它自己的价值。我只更新了名单。

在javascript状态管理中,我们可以更新任何我们想要的变量,而不影响状态中的其他变量。我该如何在flutter redux中做到这一点?

谢谢你。

标签: flutterdartredux-thunkflutter-redux

解决方案


返回新状态时需要传递当前状态的所有变量。

NameState reducer(NameState state, dynamic action) {
  if (action is NameAction) {
    return NameState(
      name: []..addAll(action.showAction),
      title: state.title,
    );
  }

  return state;
}

推荐阅读