如何检查ReactNative中是否存在属性?

时间:2017-07-29 22:04:29

标签: javascript react-native

在ReactNative中,我有一个可能会或可能不会传递给类对象的属性。是否有类似Java的方法来检查属性是否为null?

在我的情况下,我有this.props.overrideAccessibilityLabel可能传递或不传递。我只想在传递它时使用它:

  render() {
    return (
      <View 
        accessibilityLabel={this.props.currMessage.text}
        if {...props.myAccessibilityLabel} {
          ...accessibilityLabel={...props.myAccessibilityLabel}
        }
        >
        <Text1
           // ...
        >
        </Text1>
      </View>
    );
  }

2 个答案:

答案 0 :(得分:4)

然后是单线&#34;如果&#34;在这种情况下,声明效果最佳。

      <View 
        accessibilityLabel={this.props.currMessage.text ?
this.props.currMessage.text : this. props.myAccessibilityLabel}
        >
        <Text1
           // ...
        >
        </Text1>
      </View>

答案 1 :(得分:3)

在ReactNative中,当属性不存在时,它被评估为false。 (空字符串也被评估为false。)因此,使用“if”检查属性是否存在是正确的方法。

function myFunc(x) {
    if (x) {
        return true;
    } else {
        return false;
    }
}
var a1 = {}
a1.a = "abc"
a1.b = ""
var ra=myFunc(a1.a)
var rb=myFunc(a1.b)
var rc=myFunc(a1.b)
console.log("ra=" + ra + "; rb=" + rb + "; rc=" + rc)

输出结果为:

ra=true; rb=false; rc=false

因此,属性的处理方式与var不同。检查空属性只会导致false,因此引用未定义的var会导致异常。