是否可以将可选链接与数组和map结合使用(在Javascript中?

问题描述 投票:0回答:1

编辑:我最初删除了这个,是因为我以为我错过了显而易见的明显的信息-也就是说,可选链将用于对象,而我正在将其与数组一起使用。但是,数组是JavaScript中的对象吗?所以我目前还不清楚,这就是为什么我问。鼓励我取消删除它,所以我有。希望在没有解释的情况下不要被拒绝或关闭...


我最近在Java中了解了optional chaining,并已在React / NodeJS项目中使用它。效果很好。

[我注意到我一直在将它与数组map一起使用,即使没有考虑太多-似乎是很自然的用法(这里items是数组,或者可能是undefined

        {items?.map(postListItem => ....

也就是说,它将映射是否存在items,但如果itemsundefined则不存在,但是如果我要在map上调用undefined,它将避免任何运行时错误

尽管如此,我不知道这是否是可以接受的用途,或者我是否滥用了可选链接。我搜索了一个答案,但至今仍未找到答案,这使我怀疑自己在滥用它。任何信息非常感谢!

javascript reactjs ecmascript-next
1个回答
1
投票

如果链接失败,则表达式将求值为undefined

当孩子的评估为undefined时,则为just won't render

条件渲染已经是相当普遍的策略。以前,当您有可能是数组或undefined的东西,并且想要映射if时有一个数组,则必须执行以下操作:

{ items && items.map( ...

这是有效的,因为如果itemsundefined,则整个表达式将被求值为undefined,并且不会进行渲染,也不会抛出任何错误。

使用可选链接的方式完全相同,只是更加简洁。所以是的,这是一件完全正确的事情。

可选的链接为stage 4,因此您可以指望它可靠地工作。

© www.soinside.com 2019 - 2024. All rights reserved.