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

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

分类:uniCloud

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

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

2021-10-17 18:25 负责人:DCloud_uniAD_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_uniAD_HDX

DCloud_uniAD_HDX

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

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

    好的,已解决。感谢


    2021-10-20 17:09

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