我在解析时遇到了问题,这是用 Elvis 运算符解决的,但是如果我有包含正斜杠的键,我就不能使用 Elvis 运算符,因为我必须将该键放入方括号中。
如果键像这样简单("名字")有效
{{ data?.record?.firstname }}
如果键有这样的正括号("名称/名字")则不起作用
{{ data?.record?['name/first']}}
如果我使用方括号,猫王似乎不可用。
有什么解决方法吗?也许是一种逃避正斜杠的方法。像这样的符号:
{{ data?.record?.name\/first }}
Elvis 运算符仅适用于.
,不适用于其他取消引用运算符,如 []
。
作为解决方法使用
{{ data?.record ? data.record['name/first'] : null}}
实际上,您可以同时使用 ? 和 []:
辛塔塞
obj?.道具
obj?.[expr]
到达?。[索引]
函数?。(参数)
在您的情况下,它应该是:
{{ 数据?.记录?。['名称/第一个']}}
如果它是一个数组,它仍然有效,如下所示:
属性['bar/foo']?.[0]
非常有用... :-)
来源: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining