为什么我不能以这种方式返回新状态(重置操作)?
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
答案 0 :(得分:0)
为什么它不起作用有两个问题。
您没有正确绑定点击操作才能重置
<button onClick={() => reset()}>Reset</button>
回调将传入您修改状态的状态,生命周期将更新操作内部的状态。
reset: action(state => {
state.items = [];
})
这是工作副本。 https://codesandbox.io/s/easy-peasy-typescript-v3-4j9c6