Reactjs 使用Field Component设置内部有对象的状态
我有一个具有此状态的组件:Reactjs 使用Field Component设置内部有对象的状态,reactjs,Reactjs,我有一个具有此状态的组件: state = { data: { name: ..., place: ..., responsible: { name: ..., mail: .... } } } 我有一个组件字段,一旦更改它,就会用事件更新状态: handleOnSave = (id, data) => { if (this.state[id] !== data) { const newData = {
state = {
data: {
name: ...,
place: ...,
responsible: {
name: ...,
mail: ....
}
}
}
我有一个组件字段,一旦更改它,就会用事件更新状态:
handleOnSave = (id, data) => {
if (this.state[id] !== data) {
const newData = {
...this.state.data,
[id]: data,
};
this.setState({data: newData})
}
}
如果我想更改状态数据中的责任对象,我该如何处理?我的意思是,使用这个函数我更改state={place:'newPlace'},我需要更改一个对象:responsible您想要合并这个值。使用回调重载版本的
setState
this.setState((state, props) => ({
data: {
...state.data,
responsible: data.data.responsible
}
});
您可以调用
handleOnSave
传递对象,例如:
handleOnSave({name:'name'})
或handleOnSave({responsible:{name:'name'})
handleOnSave=({responsible,…rest})=>{
常数newData={
…this.state.data,…rest,
负责人:{
…this.state.data.responsible,…responsible
}
};
this.setState({data:newData});
}
使用this.setState()
,例如:this.setState({place:'newPlace'})代码>Lol,我这样做了,但我没有粘贴。我用属性上的新值设置state,但当我必须在state内部编辑责任对象时,如何自动执行此操作?如何检查我更改的字段是否为责任字段?