针对state为对象,想要修改对象中某一个值而不修改其他值,请欣赏接下来的方法
以前写法
1.设置state对象
state={
datavalue:{
slid:'',
name:'',
memo:'',
version:'',
icon:defaultimg,
loginlink:'',
key:'',
support_game:[],
noticelink:'',
contact:{key:-1,label:''},
group:{key:'',label:''},
},
}
2 修改state对象
SetName=(e)=>{
let val=e.target.value;
let data = Object.assign({}, this.state.datavalue, { name: val })
this.setState({
datavalue: data
})
console.log(this.state.datavalue,data)
}
React17版本写法:
1.设置state对象
[datavalue,setDatavalue]=useState({
slid:'',
name:'',
memo:'',
version:'',
icon:defaultimg,
loginlink:'',
key:'',
support_game:[],
noticelink:'',
contact:{key:-1,label:''},
group:{key:'',label:''},
})
2 修改state对象
let data = Object.assign({}, this.state.datavalue, { name: val })
setDatavalue(data);//更新数据
console.log(this.state.datavalue,data)