0
我有一個存儲在this.state.items
中的項目數組,用戶可以通過單擊修改this.state.items
的按鈕來添加/刪除項目。反應:輸入字段與刪除組件的關聯值
我有這樣的事情。 (此代碼是未經測試,並且可能無法編譯,但你可能明白我的意思。)
TextField = React.createClass({
render() {
return <input type="text"/>;
}
});
TextList = React.createClass({
getInitialState() {
return {
items: [<TextField />, <TextField />, <TextField />]
};
},
addItem() {
// Adds a new <TextField /> to this.state.items
},
removeItem(index) {
// Filters out the item with the specified index and updates the items array.
this.setState({items: this.state.items.filter((_, i) => i !== index)});
},
render() {
return (
<ul>
{this.state.items.map((item, index) => {
return (
<li key={index}>
{item}
<button onClick={this.props.removeItem.bind(null, index)}>Remove</button>
</li>
);
})}
</ul>
<button onClick={this.addItem}>Add New Item</button>
);
}
});
這可以在this.state.items
刪除指定的項目。我在控制檯中看到它,這部分工作正常。但這不是提供給用戶的內容。
例如,如果有3個輸入字段,並且用戶類型分別爲「一個」,「兩個」和「三個」,則如果他點擊「兩個」的刪除按鈕,則輸入字段爲「三「被移除。換句話說,總是最後一個字段被刪除。
我該如何解決這個問題,以便輸入字段的值與刪除的字段正確關聯?
謝謝。這就說得通了。我無法使用項目內容來生成密鑰,因此我使用[this](http://stackoverflow.com/a/29662858/1982441)解決方案。 – CookieMonster