我有一个处于状态的对象,在更改功能上,我想使用setState更新对象中的键值
this.state= {
addOfficeObj: {
name: ''
}
}
onOfficeChange(e){
this.setState({addOfficeObj.name: e.target.value})
}
onOfficeChange函数,我得到e.target.value作为“ siva” 我想将addOfficeObj.name更新为“ siva”
答案 0 :(得分:0)
您应该这样做:
onOfficeChange(e){
this.setState({addOfficeObj:{name: e.target.value}})
}
答案 1 :(得分:0)
您可以这样做:
onOfficeChange(e){
this.setState({
addOfficeObj: {
name: e.target.value
}
})
}
答案 2 :(得分:0)
尝试一下,这应该可行
onOfficeChange(e){
let addOfficeObj= this.state.addOfficeObj;
addOfficeObj.name = e.target.value;
this.setState({
addOfficeObj
})
}
答案 3 :(得分:0)
您可以尝试一下。
onOfficeChange(e){
this.setState(prevState => {
let addOfficeObj = Object.assign({}, prevState.name);
addOfficeObj.name = e.target.value;
return { addOfficeObj };
})
}
答案 4 :(得分:0)
仅对顶层进行浅表复制是不够的-还应复制nestedState对象。
this.state= {
addOfficeObj: {
name: ''
}
}
onOfficeChange = (e) => {
this.setState(prevState => ({
addOfficeObj: { // object that we want to update
...prevState.addOfficeObj, // keep all other key-value pairs
name: e.target.value // update the value of specific key
}
}))
}
您可以使用传播算子以这种方式进行操作,并且不变性仍然存在(如果需要的话)