由于在a页面使用watch监听,然后从b页面再次进入a页面时,由于a页面此时还没有卸载,导致watch始终处于监听中,所以从b进入a时,会导致watch监听两次,有大佬,知道这个问题的解决方式吗
小小菜76055421
- 发布:2023-04-14 17:52
- 更新:2023-10-19 16:47
- 阅读:712
我这是vue3的写法 有可能有效
const ScaleWatch = watch(
() => settingStore.isScalePageTemplate,
(newVal) => {
setScaleClass();
}
);
onBeforeUnmount(() => {
//由于nt uniapp 页面跳转后通过使用vuex/Pinia触发的watch监听不会销毁 会重复执行,打开几次执行几次
//手动销毁监听
ScaleWatch();
});
onDeactivated(() => {
//手动销毁监听
ScaleWatch();
});
onHide(() => {
//手动销毁监听
ScaleWatch();
});
小小菜76055421 (作者)
所以你的解决方案是
2023-05-26 14:21
Azikou
回复 小小菜76055421: 暂时用了uni.redirectTo, 还在想法子
2023-05-26 15:56
小小菜76055421 (作者)
回复 Azikou: 有了好的方案,告知我下呗
2023-05-26 15:57
Azikou
回复 小小菜76055421: 同事给看我个建议,就是往监听页面跳转的时候,先判断这个页面是否存在,存在的话就用back,
2023-05-29 09:07