记录一次微信小程序总是闪退的问题

本文详细分析了一个小程序因为传入参数不同导致页面渲染时的闪退问题,问题根源在于data中预设的uiType值与onLoad中动态变更的值冲突。解决方案是移除data中的初始值,仅在onLoad中设置uiType,以避免渲染过程中的异常。此问题及解决方法对于小程序开发者理解数据更新与渲染流程具有指导意义。
摘要由CSDN通过智能技术生成

导致闪退的代码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中设置即可解决闪退问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值