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

 

posted @ 2022-05-30 20:02  大熊丨rapper  阅读(1647)  评论(0编辑  收藏  举报