Javascript 如何更新状态
我正在尝试更新状态,但只更新postalCode。当执行上述代码时,我希望得到如下结果Javascript 如何更新状态,javascript,reactjs,Javascript,Reactjs,我正在尝试更新状态,但只更新postalCode。当执行上述代码时,我希望得到如下结果 constructor(){ super(); this.state = { address: { street:null, city:null, postalCode: null } }; } postalCodeChange(e){ this.setState.addr
constructor(){
super();
this.state = {
address: {
street:null,
city:null,
postalCode: null
}
};
}
postalCodeChange(e){
this.setState.address.postalCode = e.target.value;
console.log(this.state);
}
但我犯了个错误。怎么了?要更新状态,必须使用方法 注意-
合并
这不是真正的功能,为了深入合并对象,您可以使用以下软件包:
或者,您可以使用方法from来获取此方法,并执行以下步骤
npm i react插件更新--保存
导入
(或需要
)并使用它
const state = merge({}, this.state, {
address: { postalCode: e.target.value }
});
this.setState(state);
ES2015
,您也可以使用,或
对象。分配
:
import update from 'react-addons-update';
const state = update(this.state, {
address: {
postalCode: { $set: e.target.value }
}
});
this.setState(state);
排列运算符
const state = Object.assign({}, this.state, {
address: Object.assign({}, this.state.address, { postalCode: 1000 })
});
我看到您正在使用ES6,所以我假设您也可以使用 通过使用该功能,您可以在无需额外插件或大量代码的情况下更新状态
const newState = {
address: { ...state.address, postalCode: 1000 }
};
const newState = {
address: { ...state.address, postalCode: 1000 }
};
this.setState({
address: {
...this.state.address,
postalCode: e.target.value
}
});