// 打开新增页面
uni.navigateTo({
url: "./add",
events: {
// 监听新增数据成功后, 刷新当前页面数据
refreshData: (res) => {
if (res) {
this.refreshData = '监听到了数据变化';
this.$refs.udb.refresh(); //udb为unicloud-db组件的ref属性值
}
},
},
});
// 被打开的页面
/**
* 验证表单并提交
*/
submit() {
uni.showLoading({
title: "正在保存",
mask: true,
});
this.$refs.form
.validate()
.then((res) => {
return this.submitForm(res);
})
.catch(() => {})
.finally(() => {
uni.hideLoading();
});
},
/**
* 提交表单
*/
submitForm(value) {
// 使用 clientDB 提交数据
return db
.collection(dbCollectionName)
.add(value)
.then((res) => {
uni.hideLoading();
uni.showToast({
icon: "success",
title: "新增成功",
});
this.getOpenerEventChannel().emit("refreshData", true);
setTimeout(() => uni.navigateBack(), 5000);
})
.catch((err) => {
uni.showModal({
content: err.message || "请求服务失败",
showCancel: false,
});
});
},
- 发布:2022-02-23 22:20
- 更新:2022-10-11 13:03
- 阅读:1108
产品分类: uniapp/小程序/微信
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 10 专业版 20H2
HBuilderX类型: 正式
HBuilderX版本号: 3.3.11
第三方开发者工具版本号: 稳定版 Stable Build (1.05.2201240 | 1.06.2201240)
基础库版本号: 2.22.0
项目创建方式: HBuilderX
示例代码:
操作步骤:
// 打开新增页面
uni.navigateTo({
url: "./add",
events: {
// 监听新增数据成功后, 刷新当前页面数据
refreshData: (res) => {
if (res) {
this.refreshData = '监听到了数据变化';
this.$refs.udb.refresh(); //udb为unicloud-db组件的ref属性值
}
},
},
});
// 被打开的页面
/**
* 验证表单并提交
*/
submit() {
uni.showLoading({
title: "正在保存",
mask: true,
});
this.$refs.form
.validate()
.then((res) => {
return this.submitForm(res);
})
.catch(() => {})
.finally(() => {
uni.hideLoading();
});
},
/**
* 提交表单
*/
submitForm(value) {
// 使用 clientDB 提交数据
return db
.collection(dbCollectionName)
.add(value)
.then((res) => {
uni.hideLoading();
uni.showToast({
icon: "success",
title: "新增成功",
});
this.getOpenerEventChannel().emit("refreshData", true);
setTimeout(() => uni.navigateBack(), 5000);
})
.catch((err) => {
uni.showModal({
content: err.message || "请求服务失败",
showCancel: false,
});
});
},
// 打开新增页面
uni.navigateTo({
url: "./add",
events: {
// 监听新增数据成功后, 刷新当前页面数据
refreshData: (res) => {
if (res) {
this.refreshData = '监听到了数据变化';
this.$refs.udb.refresh(); //udb为unicloud-db组件的ref属性值
}
},
},
});
// 被打开的页面
/**
* 验证表单并提交
*/
submit() {
uni.showLoading({
title: "正在保存",
mask: true,
});
this.$refs.form
.validate()
.then((res) => {
return this.submitForm(res);
})
.catch(() => {})
.finally(() => {
uni.hideLoading();
});
},
/**
* 提交表单
*/
submitForm(value) {
// 使用 clientDB 提交数据
return db
.collection(dbCollectionName)
.add(value)
.then((res) => {
uni.hideLoading();
uni.showToast({
icon: "success",
title: "新增成功",
});
this.getOpenerEventChannel().emit("refreshData", true);
setTimeout(() => uni.navigateBack(), 5000);
})
.catch((err) => {
uni.showModal({
content: err.message || "请求服务失败",
showCancel: false,
});
});
},
预期结果:
希望能解决问题并收到答复!
希望能解决问题并收到答复!
实际结果:
希望能解决问题并收到答复!
希望能解决问题并收到答复!
bug描述:
uni.navigateTo方法中的events参数在微信小程序中无效!
编译到到微信小程序中events参数监听不到,在谷歌浏览器中是正常的!
使用的是 uniCloud 生成的 opendb-banner.schema.json 文件 然后生成 schema2code 页面。
uni.navigateTo({
url: "./add",
events: {
// 监听新增数据成功后, 刷新当前页面数据
refreshData: (res) => {
if (res) {
console.log(res); // 获取不到res
this.$refs.udb.refresh(); // udb为unicloud-db组件的ref属性值
}
},
},
});
submit() {
uni.showLoading({
title: "正在保存",
mask: true,
});
this.$refs.form
.validate()
.then((res) => {
return this.submitForm(res);
})
.catch(() => {})
.finally(() => {
uni.hideLoading();
});
},
submitForm(value) {
// 使用 clientDB 提交数据
return db.collection(dbCollectionName)
.add(value)
.then((res) => {
uni.hideLoading();
uni.showToast({
icon: "success",
title: "新增成功",
});
this.getOpenerEventChannel().emit("refreshData", true); // 向打开页面监听处发送数据,微信小程序中无效!
setTimeout(() => uni.navigateBack(), 2000);
})
.catch((err) => {
uni.showModal({
content: err.message || "请求服务失败",
showCancel: false,
});
});
},
8 个回复
8***@qq.com (作者) - 学习中的小白~
有人也遇到了吗
8***@qq.com (作者) - 学习中的小白~
无法生效
8***@qq.com (作者) - 学习中的小白~
咋没人?
hws007 - 我就是我!
dbCollectionName,这个,对嘛,查下,是否过得了
8***@qq.com (作者)
这个 dbCollectionName 是对的,在前面就命名了变量了,这个使用的是 uniCloud 生成的 opendb-banner.schema.json 文件 然后生成 schema2code 页面。
2022-02-25 17:00
3***@qq.com
不生效+1
c***@163.com
md,官方人呢
BoredApe - 有问题就会有答案。
请上传一个能重现问题的测试工程
5***@qq.com
同问!!