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',
},
});