van-uploader上传图片,自动刷新,因为走了onShow
问题的根源: 小程序里面很多情景都会触发 当前页面的onShow, 比如 分享, 图片预览, 地图选择 等等 还有就是这个 vantui的 上传图片
最简单的方法就是加个判断, 我这边上传图子组件, 原理一样的:
home.wxml 父组件 <!-- 引入子组件 --> <custom-forms bind:isGoOnShowClick="isGoOnShowClick" />
home.js
data: {
isGoOnShow: false, // 是否走onShow(图片预览和地图组件和分享等都会触发onShow里面的接口;
}
// 接受子组件暴露的isGoOnShow,为true时不走 onShow 指定接口里面的请求数据
isGoOnShowClick(e) {
console.log(e.detail)
this.setData({
isGoOnShow: e.detail
})
},
onShow() {
if (this.data.isGoOnShow) {
this.setData({
isGoOnShow: false
})
} else {
// TODO 接口获取数据
this.getxxxxx()
}
},
子组件 custom-forms
<view class="custom-uploader" catchtap="previewRead"> <van-uploader file-list="{{ item.value }}" accept="image" max-size="{{ 5 * 1024 * 1024 }}" max-count="1" image-fit="aspectFit" bind:after-read="afterRead" bind:click-preview="previewRead" bind:delete="deleteImg" /> </view>
// 图片预览/图片上传前操作优化,用于告诉父页面走不走onShow接口
previewRead(e) {
// 向父组件暴露isGoOnShow,告诉父组件不要走 onShow指定接口里面的请求数据
this.triggerEvent('isGoOnShowClick', {
isGoOnShow: true
})
},
非组件的请参看 我这个文章, 很简单, 原理一样 : https://www.cnblogs.com/520BigBear/p/14536352.html
那时候我只有一台录音机也没有电脑 也不敢奢求说唱会让自己的生活变好