Best Answer-推荐答案 strong>
在您的 fetchData 方法中,您可能也应该将 responseData 保存到 state。然后,您将在每次搜索字段更改时与此数据进行交互。
fetchData() {
fetch(REQUEST_URL)
.then((response) => response.json())
.then((responseData) => {
this.setState({
dataSource: this.state.dataSource.cloneWithRows(responseData.movies),
movies: responseData.movies,
loaded: true,
});
}).done();
},
现在在您的 setSearchText()
方法中,您应该包含一些过滤器功能,该功能将从您保存到 fetchData()
中的状态的电影中找到您想要的电影。
setSearchText(action){
const searchText = event.nativeEvent.text;
const filteredMovies = this.state.movies.filter(/* awesome filter function */);
this.setState({
searchText,
dataSource: this.state.dataSource.cloneWithRows(filteredMovies);
});
},
每次要更新 ListView 时,都必须更新它的数据源。只有这样 ListView 组件才能意识到它显示的数据发生了变化。
希望我能帮上忙。
关于android - ListView 中的搜索数据 react 原生,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/37938189/