8***@qq.com
8***@qq.com
  • 发布:2022-02-23 22:20
  • 更新:2022-10-11 13:03
  • 阅读:1108

【报Bug】uni.navigateTo方法events参数在微信小程序中无效!

分类:uni-app

产品分类: 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,  
               });  
            });  
},
2022-02-23 22:20 负责人:无 分享
已邀请:
8***@qq.com

8***@qq.com (作者) - 学习中的小白~

有人也遇到了吗

8***@qq.com

8***@qq.com (作者) - 学习中的小白~

无法生效

8***@qq.com

8***@qq.com (作者) - 学习中的小白~

咋没人?

hws007

hws007 - 我就是我!

dbCollectionName,这个,对嘛,查下,是否过得了

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

    这个 dbCollectionName 是对的,在前面就命名了变量了,这个使用的是 uniCloud 生成的 opendb-banner.schema.json 文件 然后生成 schema2code 页面。

    2022-02-25 17:00

3***@qq.com

3***@qq.com

不生效+1

c***@163.com

c***@163.com

md,官方人呢

BoredApe

BoredApe - 有问题就会有答案。

请上传一个能重现问题的测试工程

5***@qq.com

5***@qq.com

同问!!

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