今天突然发现以前做好的一个页面发生崩溃,错误如下:
查了代码,发现好久都没有动这块的代码了,所以非常疑惑。最后通过2分法不停地查哪里出了问题,最终查到了这个语句:
return (
<View>
{rowData.adminReply &&
<Text>{rowData.adminReply}</Text>
}
</View>
)
这段代码的意思是 如果adminReply有值,则展示adminReply。但是这条语句为什么会报错呢?查了半天,发现是因为adminReply的值是空字符串"",然后系统就报错了,类似这样:
let rowData = {adminReply: ""};
return (
<View>
{rowData.adminReply &&
<Text>{rowData.adminReply}</Text>
}
</View>
)
解决办法如下,使用!!来判断adminReply是否有值,因为这里其实你是希望将adminReply当成bool来使用的。
let rowData = {adminReply: ""};
return (
<View>
{!!rowData.adminReply &&
<Text>{rowData.adminReply}</Text>
}
</View>
)
所以以后字符串的判断,都用!!去判断,否则出现字符串恰好为""的时候,就会崩溃。