不得不说,真的坑呀。

vant-weapp dialog弹层before-close绑定方法不生效,绑定data中的方法才生效。正确的写法如下

<van-dialog 
    use-slot 
    title="弹层" 
    show="{{show}}" 
    before-close="{{beforeCloseFunction}}" 
>
</van-dialog>
Page({
    data: {
        show: false,
        beforeCloseFunction: null
    },

    onLoad() {
        this.setData({beforeCloseFunction: this.beforeClose()})
    },

    beforeClose() {
        // 这里一定要用箭头函数,否则访问不到this
        return (type) => {
            console.log(type)
            console.log(this.data)
            if (type === 'cancel') {
                // 点击取消
                return true
            }else {
                // 点击确定
            }
        }
    }
})

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐