Javascript 如何使用setState更新对象中的状态
我有一个对象处于状态,在更改函数中,我想使用setState更新对象中的键值Javascript 如何使用setState更新对象中的状态,javascript,reactjs,Javascript,Reactjs,我有一个对象处于状态,在更改函数中,我想使用setState更新对象中的键值 this.state= { addOfficeObj: { name: '' } } onOfficeChange(e){ this.setState({addOfficeObj.name: e.target.value}) } onOfficeChange函数我得到的e.target.value为“siva” 我想将addOfficeObj.name更新为“siva”您应该这样做: onO
this.state= {
addOfficeObj: {
name: ''
}
}
onOfficeChange(e){
this.setState({addOfficeObj.name: e.target.value})
}
onOfficeChange函数我得到的e.target.value为“siva”
我想将addOfficeObj.name更新为“siva”您应该这样做:
onOfficeChange(e){
this.setState({addOfficeObj:{name: e.target.value}})
}
你应该这样做:
onOfficeChange(e){
this.setState({addOfficeObj:{name: e.target.value}})
}
您可以这样做:
onOfficeChange(e){
this.setState({
addOfficeObj: {
name: e.target.value
}
})
}
您可以这样做:
onOfficeChange(e){
this.setState({
addOfficeObj: {
name: e.target.value
}
})
}
试试这个,这个应该有用
onOfficeChange(e){
let addOfficeObj= this.state.addOfficeObj;
addOfficeObj.name = e.target.value;
this.setState({
addOfficeObj
})
}
试试这个,这个应该有用
onOfficeChange(e){
let addOfficeObj= this.state.addOfficeObj;
addOfficeObj.name = e.target.value;
this.setState({
addOfficeObj
})
}
你可以试试这个
onOfficeChange(e){
this.setState(prevState => {
let addOfficeObj = Object.assign({}, prevState.name);
addOfficeObj.name = e.target.value;
return { addOfficeObj };
})
}
你可以试试这个
onOfficeChange(e){
this.setState(prevState => {
let addOfficeObj = Object.assign({}, prevState.name);
addOfficeObj.name = e.target.value;
return { addOfficeObj };
})
}
仅对顶层进行浅层复制是不够的,还应复制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
}
}))
}
您可以使用spread运算符这样做,并且不变性也仍然存在(如果您需要)仅对顶层进行浅层复制是不够的-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
}
}))
}
您可以使用spread运算符这样做,并且不变性也仍然存在(如果您需要)尝试使用箭头函数onOfficeChange(e)到onOfficeChange=e=>这里对您的问题给出了很好的解释,尝试使用箭头函数onOfficeChange(e)到onOfficeChange=e=>这里对您的问题给出了很好的解释,