假设我有一个名为“ NAME”的变量,该变量具有存储的名称,我在State中也有此变量,可以说该变量存储了“ JOSH”
this.state = {
nombre: ' '
}
我将此变量设置为输入值,因此,当我单击按钮时,将输入变量“ NAME”放入输入值,以便在输入“ JOSH”中向我显示
如果我误删除了一个字母或整个字段,请使用“ UNDO”按钮还原更改,因此,当输入中有“ JOSH”时,当我单击时删除1个字母(JOS)按钮“撤消”,它应该会再次带我“ JOSH”。
我的疑问是,如何将状态重置为原始值?
我正在考虑类似...的事情:
this.setSate ({name});
,但有一些失败使我无法撤消
答案 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) }));