u***@qq.com
u***@qq.com
  • 发布:2021-10-17 18:25
  • 更新:2021-10-19 14:44
  • 阅读:654

用schema生成的页面,设置成wx小程序的首页提交成功但会报错

分类:uniCloud

用官方给的问题反馈页面模板,我设置成首页了,在微信上调试提交信息能提交成功,云数据库也能查到数据,但是点击提交后总会出现一个弹窗,e.getOpenerEventChannel().emit is not a function

但是在二级页面中打开没问题,设置成首页能提交但是提交后报错这个

2021-10-17 18:25 负责人:DCloud_uni-ad_HDX 分享
已邀请:
u***@qq.com

u***@qq.com (作者)

<script>  
    import {  
        validator  
    } from '../../js_sdk/validator/opendb-feedback.js';  
    console.log(validator);  
    const db = uniCloud.database();  
    const dbCollectionName = 'opendb-feedback';  

    function getValidator(fields) {  
        let result = {}  
        for (let key in validator) {  
            if (fields.indexOf(key) > -1) {  
                result[key] = validator[key]  
            }  
        }  
        return result  
    }  

    export default {  
        data() {  
            let formData = {  
                "content": "",  
                "imgs": [],  
                "contact": "",  
                "mobile": ""  
            }  
            return {  
                formData,  
                formOptions: {},  
                rules: {  
                    ...getValidator(Object.keys(formData))  
                }  
            }  
        },  
        onReady() {  
            this.$refs.form.setRules(this.rules)  
        },  
        methods: {  
            /**  
             * 触发表单提交  
             */  
            submit() {  
                uni.showLoading({  
                    mask: true  
                })  
                this.$refs.form.validate().then((res) => {  
                    this.submitForm(res)  
                }).catch(() => {  
                    uni.hideLoading()  
                })  
            },  

            submitForm(value) {  
                // 使用 clientDB 提交数据  
                db.collection(dbCollectionName).add(value).then((res) => {  
                    uni.showToast({  
                        icon: 'none',  
                        title: '提交成功'  
                    })  
                    this.getOpenerEventChannel().emit('refreshData')  
                    setTimeout(() => uni.navigateBack(), 500)  
                }).catch((err) => {  
                    uni.showModal({  
                        content: err.message || '请求服务失败',  
                        showCancel: false  
                    })  
                }).finally(() => {  
                    uni.hideLoading()  
                })  
            }  
        }  
    }  
</script>
DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

这个代码是生成的还是你自己写的?

                    this.getOpenerEventChannel().emit('refreshData')    
  • u***@qq.com (作者)

    schema自动生成的,不是自己写的。

    2021-10-18 14:20

  • u***@qq.com (作者)

    unicloud插件市场导入的 问题反馈页面模板 里面的也是这么写的。

    2021-10-18 14:40

DCloud_uni-ad_HDX

DCloud_uni-ad_HDX

如果是首页,请手动删除下面的代码,然后根据自己的业务跳转

this.getOpenerEventChannel().emit('refreshData')    
setTimeout(() => uni.navigateBack(), 500) 
  • u***@qq.com (作者)

    好的,已解决。感谢

    2021-10-20 17:09

该问题目前已经被锁定, 无法添加新回复