Это происходит потому, что вы выполняете фильтрацию в исходный список (массив данных).Попробуйте одно, возьмите два массива , один для Показать список данных фильтра и один для исходный список данных.
См. Нижекод.Сообщите мне, если есть какие-либо проблемы с этим решением.
constructor(props) {
super(props);
this.state = {
search: "",
data: [],
filterData:[], // take one more list to show filter data list
error: ""
};
}
Сначала добавьте в оба списка одинаковые данные:
componentWillMount(){
this.setState({data: //set your data, filterData: //set same data})
}
Данные HandleSearch:
handleTextChange = search => {
this.setState({ search });
let data = this.state.data;
//apply filter to your original list
data = data.filter(el => el.name.match(search))
this.setState({filterData:data}) //set filter result in your filterData list.
};
Используйте filterDataList , чтобы показать ваш список
_displayAllData = () => {
return this.state.filterData.map(el => {
return (
<View>
<Text >
Nazwa: <Text>{el.name}</Text>
</Text>
<View>
<Text>
Ulica: <Text>{el.street}</Text>
</Text>
</View>
</View>
);
});
};