我試圖從我的狀態中刪除值。從狀態中刪除值(設置新狀態)
我使用.filter
,因爲我相信這是最簡單的方法。我也想實現一個undo
函數(但這超出了這個問題的範圍)。
我已經把這個代碼在沙箱中 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>
);
}
}
這告訴我'findIndex'不是一個函數。你能在這個例子中試試嗎? https://codesandbox.io/s/yrwo2PZ2R – Ycon
沒有。這是刪除底部項目(不是我點擊的具體項目) – Ycon
不知道這是解決問題的好方法。我的意思是使用'=='而不是'==='。類型轉換是更爲明顯的解決方案。如果你有明確的類型轉換,重構錯誤的概率就會降低。 –