2017-05-04 13 views
2

我瀏覽到第二個畫面在我的陣營原生應用程序,下面是第二屏幕的構造函數:有我的應用程序一個怪異的行爲

constructor(props) { 
    super(props); 
    const navParams = props.navigation.state.params; 

    if(navParams !== undefined && navParams.eventId) { 
     let MyStr = "Inside IF"; 
    } 
    else 
    { 
     let MyStr = "Inside ELSE";    
    } 
} 

navParams未定義(見下關注) ,也eventId不爲空(請參閱下面的觀看)。然而,else聲明正在執行,而不是if

會導致這種奇怪行爲的問題是什麼?

enter image description here

回答

3

eventId0這意味着這將失敗(navParams !== undefined && navParams.eventId)

你會需要更多的像

(navParams !== undefined && navParams.eventId !== undefined)

(navParams !== undefined && navParams.eventId > -1)

如果該值爲0,它將基本上評估爲false

+0

有趣!歡迎來到JS? –

+0

@KyleKhalaf是的JS幾乎沒有隱藏的祕密,可以欺騙新用戶 – GillesC