轻松自如-无法返回新状态

时间:2019-10-31 21:41:07

标签: reactjs typescript redux easy-peasy

为什么我不能以这种方式返回新状态(重置操作)?

export interface TodosModel {
  items: string[];
  reset: Action<TodosModel>;
}

const todos: TodosModel = {
  items: [],

  // This action does not update the state
  reset: action(() => {
    return {
      items: []
    };
  })
};

我正在尝试实现此处描述的内容:https://github.com/ctrlplusb/easy-peasy/issues/146

工作示例:https://codesandbox.io/s/easy-peasy-typescript-v3-vzc11

1 个答案:

答案 0 :(得分:0)

为什么它不起作用有两个问题。

您没有正确绑定点击操作才能重置

<button onClick={() => reset()}>Reset</button>

回调将传入您修改状态的状态,生命周期将更新操作内部的状态。

reset: action(state => {
    state.items = [];
  })

这是工作副本。 https://codesandbox.io/s/easy-peasy-typescript-v3-4j9c6