【发布时间】:2017-06-18 11:23:59
【问题描述】:
我正在尝试更新一些不可变的数据。但是,我做错了,它不起作用。
我的理解是,我需要传递一个唯一的它(例如key),以便它知道要更新哪个状态的项目。但这可能是错误的,我想以正确的方式做到这一点。我尝试了不变性助手,但没有成功。
我还想更新/添加/删除不可变数组中的嵌套项。
为了方便起见,我把它放在了一个代码沙箱中https://codesandbox.io/s/mz5WnOXn
class App extends React.Component {
...
editTitle = (e,changeKey) => {
this.setState({
movies: update(this.state.movies, {changeKey: {name: {$set: e.target.value}}})
})
console.log('Edit title ran on', key)
};
...
render() {
...
return (
<div>
{movies.map(e => {
return (
<div>
<input key={e.pk} onChange={this.editTitle} value={e.name} changeKey={e.pk} type="text" />
With genres:
{e.genres.map(x => {
return (
<span key={x.pk}>
<input onChange={this.editGenres} value={x.name} changeKey={x.pk} type="text" />
</span>
);
})}
</div>
);
})}
</div>
);
}
}
【问题讨论】:
标签: javascript reactjs