【发布时间】:2021-09-24 11:48:20
【问题描述】:
我是 ReactNative 的新手,遇到了关于页面刷新的问题。我的屏幕中有一些过滤器,并且希望在按下任何这些过滤器后刷新页面,但我无法找到有关如何执行此操作的任何指南。我无休止地搜索,但只找到了许多关于下拉刷新的指南,我觉得解决方案与 React.useEffect 有关系,但我不熟悉。
我的代码的重要部分如下:
触发刷新的TouchableOpacity组件:
<TouchableOpacity
style={styles.filterButton}
onPress={() => {
sortByRating()
}}
>
其中 sortByRating() 是一个函数,用于根据我的eateriesToShow 数组的评分对其进行排序。
我想在过滤器上刷新的 FlatList:
<FlatList
data={eateriesToShow}
keyExtractor={item => item.id.toString()}
renderItem={renderItem}
showsVerticalScrollIndicator={true}
/>
</View>
)
}
目前我的 eateriesToShow 数组已排序,但 FlatList 没有刷新。任何帮助将不胜感激。
【问题讨论】:
-
我不确定你所说的刷新是什么意思,如果你想更新一个 FlatList 那么你必须改变你发送给它的数据。在 React 中,当你更新状态时,组件会重新渲染,所以如果你让 eateriesToShow 成为一个状态并更新它,你的 FlatList 就会更新。如果您仍然卡住,请提供一个沙箱。 codesandbox.io
标签: react-native react-native-flatlist use-effect page-refresh pull-to-refresh