我有以下代码片段:
onChange(e) {
e.persist
this.setState((prevState) => {
prevState[e.target.id] = e.target.value
return prevState
})
}
Run Code Online (Sandbox Code Playgroud)
我将如何使用上面的代码设置每个键的状态.
这是初始状态:
this.state = {
heading: this.props.match.params.length > 1 ? "Edit Post" : "Create Post",
title: '',
category: '',
body: '',
author: ''
}
Run Code Online (Sandbox Code Playgroud)
May*_*kla 17
基本规则是:
我们可以使用Computed属性名称概念并使用任何js表达式动态计算对象属性名称.为此,我们需要将表达式放在里面[].
像这样:
var obj = {
[10 * 20 + 1 - 5]: "Hello"
};
console.log('obj = ', obj);Run Code Online (Sandbox Code Playgroud)
解:
根据您发布的代码,您需要放入e.target.id内部[],如下所示:
onChange(e) {
this.setState({
[e.target.id]: e.target.value
})
}
Run Code Online (Sandbox Code Playgroud)
或者我们可以先创建该对象,然后将该对象传递给setState函数,如下所示:
onChange(e) {
let obj = {};
obj[e.target.id] = e.target.value
this.setState(obj);
}
Run Code Online (Sandbox Code Playgroud)
你也不需要prevState.您可以使用新值直接更新状态变量.prevState仅当新状态值依赖于先前的状态值时才需要,例如在计数器的情况下.
| 归档时间: |
|
| 查看次数: |
9660 次 |
| 最近记录: |