Ich versuche, einen Wert aus meinem Status zu entfernen.Wert aus Status entfernen (neuen Status festlegen)
Ich benutze .filter
, wie ich glaube, dies ist der einfachste Weg, es zu tun. Ich möchte auch eine undo
Funktion implementieren (aber das ist außerhalb des Umfangs dieser Frage).
Ich habe diesen Code in einer Sandbox setzen https://codesandbox.io/s/yrwo2PZ2R
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
movies: x.movies,
};
}
remove = (e) => {
e.preventDefault();
console.log('remove movie.id:', e.target.value)
const index = e.target.value
this.setState({
movies: this.state.movies.filter((_, e) => e.id !== index)
});
}
render() {
return (
<div>
{this.state.movies.map(e =>
<div key={e.id}>
<li>{e.name} {e.id}</li>
<button value={e.id} onClick={this.remove}>remove</button>
</div>,
)}
</div>
);
}
}
das mir sagt, 'findIndex' keine Funktion ist. Könnten Sie es im Beispiel versuchen? https://codesandbox.io/s/yrwo2PZ2R – Ycon
Nein. Das löscht das untere Element (nicht das spezifische Element, auf das ich klicke) – Ycon
Nicht sicher, dass es ein guter Weg ist, das Problem zu lösen. Ich meine, benutze '==' anstelle von '==='. Type Cast ist eine viel offenere Lösung.Und es gibt eine geringere Wahrscheinlichkeit, beim Refactoring einen Fehler zu machen, wenn Sie eine explizite Typumwandlung haben. –