为了更新状态,您必须使用setState method
const state = merge({}, this.state, {
address: { postalCode: e.target.value }
});
this.setState(state);
Note - merge
它不是真正的函数,为了深度合并对象,您可以使用类似的包merge-deep, assign-deep
或者你可以使用update方法来自React.addons,要获得此方法,请执行以下步骤
npm i react-addons-update --save
-
import
(or require
)并使用它
import update from 'react-addons-update';
const state = update(this.state, {
address: {
postalCode: { $set: e.target.value }
}
});
this.setState(state);
Example
另外如果你使用ES2015
您可以使用Object.assign, or spread operator
Object.assign
:
const state = Object.assign({}, this.state, {
address: Object.assign({}, this.state.address, { postalCode: 1000 })
});
spread operator
const newState = {
address: { ...state.address, postalCode: 1000 }
};