我导航到我的React Native Application中的第二个屏幕,下面是第二个屏幕的构造函数:
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
。
造成这种奇怪行为的问题是什么?
答案 0 :(得分:3)
eventId
是0
,这意味着这将失败(navParams !== undefined && navParams.eventId)
。
你需要更多像
这样的东西 (navParams !== undefined && navParams.eventId !== undefined)
或
(navParams !== undefined && navParams.eventId > -1)
。
如果值为0
,它将基本上评估为false
。