Javascript 如何使用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

我有一个对象处于状态,在更改函数中,我想使用setState更新对象中的键值

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=>这里对您的问题给出了很好的解释,