给出类似的东西:
@props.field1.field2.field3
我想测试field3是否存在。所以:
@props.field1.field2.field3?
但是。如果field1在field1上不存在,那么上面的行会产生错误。
但我想避免一堆嵌套测试:
if @props.field1
if @props.field2
if @props.field3
//do something
这可能吗?
答案 0 :(得分:0)
来自fine manual:
存在运营商
[...]
存在运算符<html> <head> <title>test</title> <style type="text/css"> table { border-collapse: collapse; } table tr td { border: 2px solid black; } </style> </head> <body> <table> <tr> <td>row 1 cell 1</td> <td>row 1 cell 2</td> </tr> <tr> <td>row 2 cell 1</td> <td>row 2 cell 2</td> </tr> </table> </body> </html>
的访问器变体可用于在属性链中吸收空引用。如果基值可能 null 或未定义,请使用它代替点访问器?.
。如果所有属性都存在,那么您将获得预期结果,如果链断开,则返回未定义而不是 TypeError ,否则将被引发。
所以你可以说:
.
完全忽略遗失的属性。
答案 1 :(得分:0)
if @props.field1 && @props.field2 && @props.field3
如果其中一个属性不存在,编译器将不会测试以下任何一个
实际上
if @props.field3
应该完成这项工作