PUROGU LADESU

ポエムがメインのブログです。

【ReactNative】FlatListの検索バー

ListHeaderComponentに入力欄を入れない方が良い

FlatListのListHeaderComponentに検索のTextInputを配置して検索しようとすると、入力のたびにキーボードが閉じてしまうという現象が発生する。

TextInputのonChangeTextでstateを更新しているため、毎回全体の再描画が走っているからだろうか。ReactのDOM更新は差分更新だったはずなのだけれど。

試しにTextInputをFlatListの外に出してやってみると問題が解消された。FlatListが変更されたせいで、TextInputまで再描画されてしまいキーボードが閉じられてしまった可能性がある。

このあたりはもう少し詳しく見て見る必要があるかも。

<View>
  <TextInput placehloder="検索" onChangeText={this.onChangeText}>
  </TextInput>
</View>
<View>
  <FlatList data={this.state.data}>
  </FlatList>
</View>