Reactjs “未定义”不是筛选平面列表时的对象
我试图在react native中过滤一些数据,但是当数据来自JS文件时,当它们来自firebase DB时,它会说“undefined不是对象(评估Reactjs “未定义”不是筛选平面列表时的对象,reactjs,firebase,native,Reactjs,Firebase,Native,我试图在react native中过滤一些数据,但是当数据来自JS文件时,当它们来自firebase DB时,它会说“undefined不是对象(评估MeasuresList.filter)” 这是密码 <FlatList style={styles.flatList} data = {ExercisesList.filter(item => item.muscle === "shoulders")}} keyExtract
MeasuresList.filter
)”
这是密码
<FlatList style={styles.flatList}
data = {ExercisesList.filter(item => item.muscle === "shoulders")}}
keyExtractor={(item) => item.id}
renderItem={({ item }) =>
{item.name}
}
/>
item.muscle==“肩部”)}
keyExtractor={(项)=>item.id}
renderItem={({item})=>
{item.name}
}
/>
如果我删除过滤部分,进入屏幕,我可以看到包含所有练习的平面列表,如果我添加过滤部分并保存,我可以看到过滤后的元素,它可以工作。问题是,当我添加了筛选代码时,我无法进入此页面,即使它似乎有效,为什么在进入屏幕之前“MeasuresList.filter
”未定义?请尝试以下操作:
Array.isArray(MeasuresList) && MeasuresList?.filter
您还应将
MeasuresList
的默认值设置为[]
[未定义的不是对象]表示未定义MeasuresList。在这种情况下,[exerciseList.filter]与[undefined.filter]相同
因此,您应该检查MeasuresList是未定义的还是已定义的值
{ExercisesList? ExercisesList.filter(item => item.muscle === "shoulders") : []}
请让我知道它是否适合你。
谢谢。非常感谢!信息技术worked@AymanNasreddin你应该接受这个答案,然后这也起作用了,但是你在我删除的肩膀后面添加了一个“}”。谢谢!哦,是的。是我的错。非常感谢D