Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 反应状态。改变_Javascript_Reactjs - Fatal编程技术网

Javascript 反应状态。改变

Javascript 反应状态。改变,javascript,reactjs,Javascript,Reactjs,更改状态时遇到问题。我有一些状态= id: '', avatar: '', steps: 0, programName: '', programDate: '', programPrice: '', personalInfo: { name: '', surname: '', sex: 'man', birthDay: '', birthMonth: '', birthYear: '', familyStatus: '', countryBirth: '',

更改状态时遇到问题。我有一些状态=

id: '',
avatar: '',
steps: 0,
programName: '',
programDate: '',
programPrice: '',
personalInfo: {
  name: '',
  surname: '',
  sex: 'man',
  birthDay: '',
  birthMonth: '',
  birthYear: '',
  familyStatus: '',
  countryBirth: '',
  cityBirth: '',
  birthCitizenship: '',
  currentCitizenship: ''
},
如何更改此属性:
this.state.personalInfo.name
??

使用setState()方法更改 国家


这个问题可能会重复

要在组件状态下更改嵌套对象的值,正确的方法是:

const { personalInfo } = this.state;
this.setState({
  ...this.state,
  personalInfo: {
    ...personalInfo,
    name: 'New Name',
  },
});
您必须考虑,每次更改状态时,<代码> SETSTATE()< /C>函数需要一个新对象。创建新对象时,“扩展”操作符(
)很有用。因此,基本上您必须从以前的状态复制属性,并替换
personalInfo
的name属性
const { personalInfo } = this.state;
this.setState({
  ...this.state,
  personalInfo: {
    ...personalInfo,
    name: 'New Name',
  },
});