2017-05-04 12 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