場景描述:頁面有input框,輸入值改變state中testData.name
代碼舉例如下:
{/*html部分*/}
<Input onChange={this.textChange('name')} placeholder='請輸入新的姓名' value={this.state.testData.name}/>
//state中的數據
this.state={
testData:{ //測試數據
name:'張三',
sex:'男',
age:'20',
},
}
//輸入框的值發生改變執行的方法
textChange=(itemName)=>{
return (e)=>{
let newTestData=Object.assign(this.state.testData,{[itemName]:e.target.value}); //用新的值覆蓋原來的值
this.setState({
testData:newTestData
})
}
};
Object.assign() 方法用於將所有可枚舉屬性的值從一個或多個源對象複製到目標對象。它將返回目標對象。
Object.assign(目標對象,源對象)
如果目標對象中的屬性有與源對象 相同的鍵,則屬性將被 源對象 中的屬性 覆蓋。