我遇到了解析问题,这是用Elvis运算符解决的,但是如果我有包含正斜杠的键,我就不能使用Elvis运算符,因为我必须把那个键放到方括号中。
如果键很简单就行了("名字")
{{ data?.record?.firstname }}
如果键具有这样的前括号(" name / first")
,则不起作用{{ data?.record?['name/first']}}
如果我使用方括号,似乎Elvis不可用。
任何解决方法?也许是一种逃避冲突的方法。这样的符号:
{{ data?.record?.name\\/first }}
答案 0 :(得分:13)
Elvis运算符仅适用于.
,不适用于其他解除引用运算符,例如[]
。
作为解决方法使用
{{ data?.record ? data.record['name/first'] : null}}
答案 1 :(得分:0)
实际上,您可以同时使用?和[]同时:
罪人
obj?.prop
obj?。[expr]
arr?。[index]
func?。(args)
您的情况应该是:
{{data?.record?。['name / first']}}
如果是数组,仍然可以使用,就像这样:
attributes ['bar / foo']?。[0]
非常有用...:-)
来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining