1. ホーム
  2. javascript

[解決済み] コンポーネント状態での配列からの要素の削除

2022-06-08 11:29:53

質問

コンポーネントの状態で配列から要素を削除する最良の方法を見つけようとしています。 私は this.state 変数を直接修正してはならないので、私がここで持っているものよりも配列から要素を削除するためのより良い方法(より簡潔な)はありますか?

  onRemovePerson: function(index) {
    this.setState(prevState => { // pass callback in setState to avoid race condition
      let newData = prevState.data.slice() //copy array from prevState
      newData.splice(index, 1) // remove element
      return {data: newData} // update state
    })
  },

ありがとうございました。

更新

setStateでコールバックを使用するように更新されました。これは、現在の状態を更新しながら参照する場合に行う必要があります。

どのように解決するのですか?

私が見た中で、最もきれいな方法は filter :

removeItem(index) {
  this.setState({
    data: this.state.data.filter((_, i) => i !== index)
  });
}