导致闪退的代码demo:
wxml
<view class="{{uiType === 1 ? 'uitype1' : 'uitype2'}}">
</view>
js:
data:{
uiType:1
},
onLoad(options){
this.setData({
uiType: (options.id === '1234') ? 1 : 2
})
}
闪退原因说明: 页面的wxml和js无异的情况下根据传入参数的不同会有两套不同的wxss渲染样式。如果传入参数决定最终渲染uitype1
则不会出现闪退现象,但如果传入参数决定最终渲染uitype2
则可能出现闪退现象。这是因为小程序默认去渲染uitype1(data中的值设为了1),但突然渲染过程中改了uiType的值,就导致渲染出问题了,直接发生闪退
解决办法:
仅需要修改js文件:
data:{},
onLoad(options){
const uiType = ((options.id === '1234') ? 1 : 2);
this.setData({
uiType
})
}
如上代码:在data中不要设置uiType,只在onLoad中设置即可解决闪退问题