我用這個解決方案。
如果你有這樣一個嵌套的狀態:
this.state = {
formInputs:{
friendName:{
value:'',
isValid:false,
errorMsg:''
},
friendEmail:{
value:'',
isValid:false,
errorMsg:''
}
}
你可以聲明覆制當前狀態和handleChange功能重新分配與改變的值
handleChange(el) {
let inputName = el.target.name;
let inputValue = el.target.value;
let statusCopy = Object.assign({}, this.state);
statusCopy.formInputs[inputName].value = inputValue;
this.setState(statusCopy);
}
這裏的HTML與它事件監聽器。確保使用用於進入狀態對象相同的名稱(在這種情況下,「FRIENDNAME」)
<input type="text" onChange={this.handleChange} " name="friendName" />
現在我正在努力工作的方式,雖然...第二種方式:S – JohnSnow
@JohnSnow在你第二它會刪除'jasper'對象的其他屬性,做'console.log(jasper)'你只會看到一個鍵'name',年齡不會在那裏:) –
True ...你描述的方式是唯一的去考慮它...考慮我想使用React而不是Redux? – JohnSnow