【问题标题】:Question mark before dot in javascript / react [duplicate]javascript / react中点之前的问号[重复]
【发布时间】:2020-09-02 22:21:26
【问题描述】:

我知道 ternary operator 在 React 中是什么。

当我开发 React Native 应用程序时,我遇到了这种被我的 eslint 覆盖为意外标记的语法

ESLint: Parsing error: Unexpected token .

是这样的:

const routeName = route.state?.routes[route.state.index]?.name ?? INITIAL_ROUTE_NAME;

这是什么意思?它最后使用null coalescing operator,但是我不明白点前的问号是做什么的。

我知道这是一个正确的语法,因为它是来自 expo 的模板,并且它们在 react-native 开发社区中非常受欢迎。

谁能帮我解释一下?

【问题讨论】:

  • 啊,是的,不知道名字就很难找到它...谢谢!
  • 这就是 Stack Overflow 如此出色的原因 - 您可以确定其他人也曾尝试以同样的方式寻找它 :)

标签: reactjs react-native


【解决方案1】:

这是可选链接:MDN

可选的链式操作符?。允许读取位于连接对象链深处的属性值,而无需明确验证链中的每个引用是否有效。这 ?。运算符的功能类似于 .链接运算符,除了如果引用为空(null 或未定义)而不是导致错误,表达式短路并返回未定义的值。与函数调用一起使用时,如果给定函数不存在,则返回 undefined。

当存在引用可能丢失的可能性时,当访问链接属性时,这会导致更短和更简单的表达式。当无法保证需要哪些属性时,它还有助于探索对象的内容。

【讨论】:

    猜你喜欢
    • 2019-05-18
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 2019-08-15
    • 2012-09-18
    • 1970-01-01
    • 2018-04-14
    • 2020-08-04
    相关资源
    最近更新 更多