尝试关闭 IONIC+VUE(使用 vuex)中的弹出窗口时出现错误 Uncaught RangeError: Maximum call stack size reached
2022-01-06
457
早上好,开发人员。我正在使用这个 IONIC + VUE 应用程序,特别是在一些具有某些功能的弹出窗口,但由于某种原因,弹出窗口的行为很奇怪,因为一旦打开并单击关闭它,第一次模式仍然存在并引发此错误:
Uncaught RangeError: Maximum call stack size exceeded
at Object.ownKeys
at hasBinary (is-binary.js:48)
at hasBinary (is-binary.js:49)
at hasBinary (is-binary.js:49)
at hasBinary (is-binary.js:49)
at hasBinary (is-binary.js:49)
at hasBinary (is-binary.js:49)
at hasBinary (is-binary.js:49)
at hasBinary (is-binary.js:49)
at hasBinary (is-binary.js:49)
然后在第二次单击时关闭。
让我给你介绍一下我所做的事情的背景。
因此,这里的模板带有一个按钮,它会触发 vuex 中执行某些操作的方法,并且还包括关闭模式的方法(closeOpenedPopOver())
注意:如果我不将调度程序操作放入 vuex,模式将正确关闭
TEMPLATE
<ion-content>
<ion-row>
<ion-col size="6"></ion-col>
<ion-button @click="stopModal()">
Stop
</ion-button>
</ion-row>
</ion-content>
METHOD
methods: {
...mapActions(["someAction"]),
stopModal(): void {
this.$store.dispatch("someAction", {
dataPopOver: 'something sent',
});
this.closeOpenedPopOver();
},
//method that set an action in vuex and also has the method that
// closes the modal
closeOpenedPopOver(): void {
popoverController.dismiss();
},
//modal closer
},
VUEX
someAction({ dispatch }, payload) {
commit("");
dispatch("otherAction");
socket.emit("something", payload);
},
//This first action emit something through sockets IO and also call other action in
charge of closing doing other stuffs
otherAction({ state, commit }) {
......some other stuffs...
},
知道为什么会发生这种情况吗?
提前致谢,祝 2022 年新年快乐
2个回答
很奇怪,但降级@ionic/vue 版本后问题就消失了。
Enrique GF
2022-01-06
此问题已在 Ionic v6.0.4 中修复
t0byman
2022-01-20