Dre*_*mer 3 javascript refresh reactjs react-native flatlist
我在拉动刷新功能时遇到问题。FlatList 渲染良好,但拉动刷新不起作用。这是我当前的源代码:
return (
<View style={GlobalStyles.flex1}>
<FlatList
showsVerticalScrollIndicator={false}
refreshControl={
<RefreshControl
refreshing={isRefreshing}
onRefresh={() => {
console.log("onRefresh loadVocable");
loadVocables();
}}
/>
}
data={vocables}
keyExtractor={vocable => vocable.id}
onEndReached={() => {
if (!isRefreshing && !endReached) {
loadVocables();
}
}}
renderItem={vocable => (
<TouchableOpacity
onPress={() => {
props.navigation.navigate({ routeName: "editVocable", params: { vocable: vocable.item } });
}}
onLongPress={() => {
handleLongPress(vocable.item.id);
}}>
<Card style={styles.cardStyle}>
<View style={styles.part1}>
<Text style={styles.vocableText}>{vocable.item.wordENG}</Text>
<Text style={styles.vocableText}>{vocable.item.wordDE}</Text>
</View>
<View style={styles.part2}>
<Ionicons name={vocable.item.known ? "md-checkmark-circle" : "md-close-circle"} size={23} color={vocable.item.known ? Colors.success : Colors.danger} />
</View>
</Card>
</TouchableOpacity>
)}
/>
</View>
);
Run Code Online (Sandbox Code Playgroud)
在官方文档中,有一个示例说 contentContainerStyle 需要为 flex: 1 才能知道高度,这对我来说很有意义,所以当我使用 flex 1 设置 contentContainerStyle 时,拉动刷新效果很好,但之后我无法再滚动在 Flatlist 中,一切都变得非常紧张,所以风格也会随之改变。有谁知道为什么会发生这种情况?
第一张图片带有“contentContainerStyle={{flex: 1}}”,最后一张图片没有 contentContainerStyle。
Dre*_*mer 13
答案很简单,我将一个新项目(我的代码可以正常工作)与问题所在的项目进行了比较,5 天后我发现了一个小错误:
我的导入错误!我是FlatList这样导入的:
import { FlatList } from "react-native-gesture-handler";
Run Code Online (Sandbox Code Playgroud)
但它需要从 React-Native 导入,如下所示:
import { FlatList } from "react-native";
Run Code Online (Sandbox Code Playgroud)
感谢@The1993,如果没有比较项目的提示,也许我会永远陷入这个错误:D 将来我将比较工作文件以查找任何错误!
| 归档时间: |
|
| 查看次数: |
2515 次 |
| 最近记录: |