2017-07-29 31 views
2

在ReactNative中,我有一個可能傳遞或不傳遞給類對象的屬性。有沒有像Java中的方式來檢查以查看該屬性是否爲空?如何檢查ReactNative中是否存在屬性?

在我的情況下,我有this.props.overrideAccessibilityLabel可能會傳遞或不傳遞。我只想在傳遞時使用它:

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

你有任何的代碼?這是有用的特定實例?否則,這是[如何做 - 我檢查,如果一個對象具有一個屬性在JavaScript](https://stackoverflow.com/questions/135448/how-do-i -check-IF-AN-對象具有-A-財產中的JavaScript) – Skam

回答

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會導致異常。

4

但是在這種情況下,一行一行的「if」聲明是最好的。

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