Cer*_*ean 11 javascript reactjs ecmascript-next
我最近了解了Javascript 中的可选链,并在 React/NodeJS 项目中使用了它。效果很好。
我注意到我一直在将它与数组一起使用map,即使没有考虑太多——这似乎是一个自然的使用(这里items是一个数组,或者可能是undefined)
{items?.map(postListItem => ....
Run Code Online (Sandbox Code Playgroud)
也就是说,它将映射 ifexists items,但不会映射 if itemsis ,但如果我要调用undefined,它将避免任何运行时错误mapundefined
尽管如此,我不知道这是否是可接受的用途,或者我是否错误地使用了可选链。我寻找答案,但到目前为止还没有找到答案,这让我怀疑我使用不当。任何信息非常感谢!
Mat*_*yne 16
请参阅此处有关打字稿用法的答案。您需要一个句点来进行数组空安全可选链接。
this.mostRecentMfaAttempt = this.verificationsAttempts?.content?.[0]
Run Code Online (Sandbox Code Playgroud)
如果链接失败,表达式将计算为undefined。
当一个孩子被评估为 时undefined,它只是不会渲染。
条件渲染已经是一种相当常见的策略。以前,当您有一些可能是数组或可能是的东西undefined,并且您想要映射是否有数组时,您必须执行以下操作:
{ items && items.map( ...
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为如果itemsis undefined,整个表达式将被计算为undefined,并且不会发生渲染,也不会抛出任何错误。
使用可选链接的工作方式完全相同,只是它更简洁。所以,是的,这是一件完全有效的事情。
可选链接是第 4 阶段,因此您可以信赖它可靠地工作。
数组是对象。但可选链接不仅适用于对象 - 它可以适用于任何可能具有属性或方法的东西。例如,如果是、或数字(数字有一个方法),则const bar = foo?.toFixed(2)可以正常工作。foonullundefinedtoFixed
| 归档时间: |
|
| 查看次数: |
14091 次 |
| 最近记录: |