Ich versuche, einige unveränderliche Daten zu aktualisieren. Allerdings mache ich es falsch und es funktioniert nicht.Bearbeiten von unveränderlichen Statuselementen
Mein Verständnis, ich muss es eine einzigartige es übergeben (zB die key
), so dass es weiß, welches Element im Zustand zu aktualisieren. Aber das mag falsch sein, und ich würde das gerne richtig machen. Ich versuchte den Helfer der Unveränderlichkeit, aber hatte keinen Erfolg.
Ich möchte auch verschachtelte Elemente in einem unveränderlichen Array aktualisieren/hinzufügen/entfernen.
Ich habe dies in einem codeSandbox für eine einfache 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>
);
}
}
Dank. Richtig, PK war nicht das ist nicht meine Daten. Ich habe herausgefunden, dass ich statt dessen "index" verwenden kann und habe oben eine Antwort gegeben. Nicht sicher, welche besser ist – Ycon
@Ycon Wenn diese Antwort oder eine andere Lösung Ihr Problem gelöst hat, markieren Sie es bitte als akzeptiert –