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>