onShow重新执行时接口被重新调用,页面不显示弹窗

622 阅读1分钟

今天在做一个分享订单的功能,受邀人进入页面后显示一个邀请人信息的弹层,该弹层要求只显示一次,这个弹层我显示的条件是 判断后台接口是否有将发起人的信息传递过来,如果有就显示,用户点击确定按钮后,将显示条件改为false,该弹层只会显示一次,但是测试的时候发现一个问题,用户确定后,填写地址时点击选择地址完成后,重新进入该页面,页面的会重新执行onShow,接口会再次被调用,因为该接口会将商品的信息以及发起人的信息传递过来,这样就会导致弹层会再次弹出,再次进入页面要显示商品信息,弹层不显示,我的解决方案是,在全局定义一个显示的状态码:toShow=0,在onLoad中将这个状态码改变toShow=1,在调用接口时判断toShow是否等于1,因为onLoad只会被调用一次
全局定义:

onLoad中修改为1
接口调用成功后判断
has_read就是html中用于判断这个弹层是否显示的条件,if后面的toShow重新赋值为0,这部其实是不需要的,因为toShow在全局里面定义的就是0,在onLoad中被修改为了1,用户重新返回该页面的时候,不会执行onLoad,就一直都是0