不変なデータを更新しようとしています。しかし、私はそれを間違ってやっているし、うまくいきません。不変の状態項目の編集
私の理解では、ユニークなもの(例: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>
);
}
}
ありがとう:
3.あなただけの代わりに、あなたが
data-changeKey
のようなdata-*
を使用して、このようなe.target.getAttribute('data-changeKey')
何かを経由してアクセスすることができますネイティブのHTML要素になしネイティブ属性を追加することはできません。正解、PKは私のデータではありませんでした。私は代わりに 'index'を使うことができることを知り、上記の答えを提供しました。どちらがより良いかわからない – Ycon
@ Yconこの回答または他の誰かがあなたの問題を解決した場合は、それを受け入れたものとしてマークしてください –