场景描述:页面有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(目标对象,源对象)
如果目标对象中的属性有与源对象 相同的键,则属性将被 源对象 中的属性 覆盖。