reactjs - 过滤 Flatlist 时未定义不是对象

标签 reactjs firebase native

我正在尝试在React Native中过滤一些数据,但是当数据来自JS文件时,当它们来自firebase DB时它会起作用,它说“未定义不是一个对象(评估MeasuresList.filter)”

这是代码

<FlatList style={styles.flatList}
          data = {ExercisesList.filter(item => item.muscle === "shoulders")}}
          keyExtractor={(item) => item.id}
          renderItem={({ item }) => 
                     {item.name}
                        }
                    />

如果我删除过滤器部分并进入屏幕,我可以看到包含所有练习的平面列表,如果我添加过滤器部分并保存,我可以看到过滤后的元素并且它可以工作。问题是,当我添加过滤器代码时,我无法进入此页面,即使它看起来有效,为什么在我进入屏幕之前“MeasuresList.filter”未定义?

最佳答案

尝试以下:

Array.isArray(MeasuresList) && MeasuresList?.filter

您还应该将 MeasuresList 的默认值设置为 []

关于reactjs - 过滤 Flatlist 时未定义不是对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67619365/

相关文章:

android - 无法让 Android 应用程序连接到 Firebase

java - 运行程序时出现 ClassNotFoundException

Android 原生崩溃调试符号

compiler-construction - 使编译后的二进制文件以 native 速度完美运行,而无需从另一个系统上的源代码重新编译?

javascript - 如何使用React在标签中设置img?

firebase - Flutter Web 配置文件隐私

reactjs - 在 .env 文件 React 应用程序中设置 PUBLIC-URL

multithreading - java 8中javaw进程的私有(private)字节增加

javascript - 当应用程序在浏览器中刷新时,React onClick 方法会自动触发吗?

javascript - react Hook 陈旧状态