這是我的代碼處理與迭代再現狀態輸入的變化......作出反應 - 通過陣列
class Module extends Component {
constructor() {
super()
this.state = {
inputs: [
{ type: 'text', placeholder: 'placeholder text', name: 'text1', id: 'text1', value: 'aaa' },
{ type: 'text', placeholder: 'another placeholder text', name: 'text2', id: 'text2', value: '' },
{ type: 'text', placeholder: 'third placeholder text', name: 'text3', id: 'text3', value: '' },
]
}
this.handleInputChange = this.handleInputChange.bind(this)
this.saveModule = this.saveModule.bind(this)
}
handleInputChange(event) {
this.setState ({
[event.target.name]: event.target.value
})
}
renderInput = (input) => {
return(
<div key={ input.id }>
<input
type={ input.type }
name={ input.name }
placeholder={ input.placeholder }
onBlur={ this.saveModule }
value={ input.value }
onChange={ this.handleInputChange }
/>
</div>
)
}
render() {
return (
<div>
{ this.state.inputs.map(this.renderInput) }
</div>
)
}
}
export default Module
我該如何處理其值從狀態以這種方式呈現的輸入的變化? 如果我有{this.state.input.value}它工作得很好,一旦我像這樣重構它,setState似乎並沒有達到它了。
任何想法? :)
非常感謝!
首先你必須找到你將要工作的對象的索引。所以考慮'event.target.name'作爲過濾數組的條件。然後用這些更改創建一個新數組。並設置狀態。繼承人一個好方法如何做到這一點http://stackoverflow.com/a/36010124/7744070 –