Fablog

社会人マイナス1年生のブログ / プログラミング / 料理 / ビットコイン

ReactNativeのFlatListがsetStateをしてもリレンダーされない時の対処法

FlatListのItemの中でFlatListで定義したdata以外のstateの値を使ってコンポネントをレンダーしていると、setStateを使ってもリレンダーされないことがある

そんなときはFlatListのExtraDataにその値を渡してあげるといい

そうするとextraDataの値が変更された時もrerenderされるようになる

<FlatList
  data={this.state.tags}
  extraData={this.state.movie}
  keyExtractor={this.defaultKeyExtractor}
  renderItem={this.renderTag}
/>

それでも動かない時もたまにある そういう時はremoveClippedSubviews={false}を追加してあげる

ここを参考にしてやった github.com