在React JS上重置状态

时间:2020-02-10 20:07:15

标签: javascript reactjs react-redux state

假设我有一个名为“ NAME”的变量,该变量具有存储的名称,我在State中也有此变量,可以说该变量存储了“ JOSH”

this.state = {
nombre: ' '
}

我将此变量设置为输入值,因此,当我单击按钮时,将输入变量“ NAME”放入输入值,以便在输入“ JOSH”中向我显示

如果我误删除了一个字母或整个字段,请使用“ UNDO”按钮还原更改,因此,当输入中有“ JOSH”时,当我单击时删除1个字母(JOS)按钮“撤消”,它应该会再次带我“ JOSH”。

我的疑问是,如何将状态重置为原始值?

我正在考虑类似...的事情:

this.setSate ({name});,但有一些失败使我无法撤消

1 个答案:

答案 0 :(得分:1)

更新状态时,请跟踪以前的所有状态:

 this.state = { name: '', history: [] };

 // whe  adding name:
 this.setState(({ history, name: oldName }) => ({ name, history: [...history, oldName] }));

然后您可以轻松地恢复以前的状态:

this.setState(({ history }) => ({ name: history[history.length - 1] || '', history: history.slice(0, -1) }));