过滤平面列表时未定义不是对象
Undefined is not an object while filtering a Flatlist
我正在尝试在 React Native 中过滤一些数据,但是当数据来自 JS 文件时它可以工作,当它们来自 firebase 数据库时它说“undefined is not an object (evaluating 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
的默认值设置为 []
[Undefined is not an object] 表示,MeasuresList 未定义。在这种情况下,[ExercisesList.filter] 与 [undefined.filter] 相同。
因此您应该检查 MeasuresList 是未定义的还是已定义的值。
{ExercisesList? ExercisesList.filter(item => item.muscle === "shoulders") : []}
请告诉我它是否适合您。
谢谢
我正在尝试在 React Native 中过滤一些数据,但是当数据来自 JS 文件时它可以工作,当它们来自 firebase 数据库时它说“undefined is not an object (evaluating 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
的默认值设置为 []
[Undefined is not an object] 表示,MeasuresList 未定义。在这种情况下,[ExercisesList.filter] 与 [undefined.filter] 相同。
因此您应该检查 MeasuresList 是未定义的还是已定义的值。
{ExercisesList? ExercisesList.filter(item => item.muscle === "shoulders") : []}
请告诉我它是否适合您。 谢谢