编辑:我最初删除了这个,是因为我以为我错过了显而易见的明显的信息-也就是说,可选链将用于对象,而我正在将其与数组一起使用。但是,数组是JavaScript中的对象吗?所以我目前还不清楚,这就是为什么我问。鼓励我取消删除它,所以我有。希望在没有解释的情况下不要被拒绝或关闭...
我最近在Java中了解了optional chaining,并已在React / NodeJS项目中使用它。效果很好。
[我注意到我一直在将它与数组map
一起使用,即使没有考虑太多-似乎是很自然的用法(这里items
是数组,或者可能是undefined
)
{items?.map(postListItem => ....
也就是说,它将映射是否存在items
,但如果items
为undefined
则不存在,但是如果我要在map
上调用undefined
,它将避免任何运行时错误
尽管如此,我不知道这是否是可以接受的用途,或者我是否滥用了可选链接。我搜索了一个答案,但至今仍未找到答案,这使我怀疑自己在滥用它。任何信息非常感谢!
如果链接失败,则表达式将求值为undefined
。
当孩子的评估为undefined
时,则为just won't render。
条件渲染已经是相当普遍的策略。以前,当您有可能是数组或undefined
的东西,并且想要映射if时有一个数组,则必须执行以下操作:
{ items && items.map( ...
这是有效的,因为如果items
为undefined
,则整个表达式将被求值为undefined
,并且不会进行渲染,也不会抛出任何错误。
使用可选链接的方式完全相同,只是更加简洁。所以是的,这是一件完全正确的事情。
可选的链接为stage 4,因此您可以指望它可靠地工作。