React Native FlatList 刷新不起作用

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。

将 contentContainerStyle 设置为 flex 1

没有内容容器样式

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 将来我将比较工作文件以查找任何错误!