van-uploader上传图片,自动刷新,因为走了onShow
问题的根源: 小程序里面很多情景都会触发 当前页面的onShow, 比如 分享, 图片预览, 地图选择 等等 还有就是这个 vantui的 上传图片
最简单的方法就是加个判断, 我这边上传图子组件, 原理一样的:
home.wxml 父组件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() } },"isGoOnShowClick" />
home.js
子组件 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 }) },
非组件的请参看 我这个文章, 很简单, 原理一样 :