数组未定义,但可以通过控制台注销

时间:2020-04-09 17:56:18

标签: javascript reactjs

我猜这是一些JS命令或事件吗?在下面的代码中,全局上下文提供程序填充了心脏。 console.log有效,数据类型为Array。但是,筛选方法会错误地指出未定义心形。

const [active, setActive] = useState();
const { hearts } = useContext(GlobalContext);
const record = props.record
console.log(hearts)
var arrayCheck = hearts.filter(heart => heart.id === record.id)

有什么想法吗?我将非常感激。

1 个答案:

答案 0 :(得分:2)

控制台具有此出色的功能,它决定要向您显示当前值,而不是在记录日志时(如果有突变)显示值。

我建议要么使hearts具有空数组的默认值:

const { hearts = [] } = useContext(GlobalContext);

或使用

hearts?.filter()

以便您处理心形变量未定义的情况。