如何在 React + Typescript 中将状态更新为之前的状态
How to update the state to its previous state in React + Typescript
我想将状态设置为之前的值。我有一个复选框列表,并根据它进行选择并单击 "Apply" table 中的列得到 shown/hidden。我能够实现这个功能。但是在点击 "Cancel" 时,我无法将其设置为之前的状态。
代码沙箱:https://codesandbox.io/s/funny-browser-2z3s5
单击“取消”时,复选框应设置为之前的状态。
点击是用 SelectComponent.tsx 中的函数处理的,目标是将 optionsArr
重置为其原始值:
cancelSelection = (event: any) => {
this.setState({ showList: false });
this.setState((prevState: any) => ({
// Isn't working
optionsArr: prevState.optionsArr
}));
};
setState updater 获取的参数是应用更改时的状态。将状态设置为等于什么都不会改变。
您需要单独跟踪之前的状态。例如作为状态中的单独项,实例变量或 props
。参见示例:
我想将状态设置为之前的值。我有一个复选框列表,并根据它进行选择并单击 "Apply" table 中的列得到 shown/hidden。我能够实现这个功能。但是在点击 "Cancel" 时,我无法将其设置为之前的状态。
代码沙箱:https://codesandbox.io/s/funny-browser-2z3s5
单击“取消”时,复选框应设置为之前的状态。
点击是用 SelectComponent.tsx 中的函数处理的,目标是将 optionsArr
重置为其原始值:
cancelSelection = (event: any) => {
this.setState({ showList: false });
this.setState((prevState: any) => ({
// Isn't working
optionsArr: prevState.optionsArr
}));
};
setState updater 获取的参数是应用更改时的状态。将状态设置为等于什么都不会改变。
您需要单独跟踪之前的状态。例如作为状态中的单独项,实例变量或 props
。参见示例: