Having error Uncaught RangeError: Maximum call stack size exceeded, when trying to close popover in IONIC+VUE(with vuex)
Having error Uncaught RangeError: Maximum call stack size exceeded, when trying to close popover in IONIC+VUE(with vuex)
开发者早上好。我在这个 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 年新年快乐
很奇怪,但是降级@ionic/vue版本问题就消失了。
这已在 Ionic v6.0.4 中修复
开发者早上好。我在这个 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 年新年快乐
很奇怪,但是降级@ionic/vue版本问题就消失了。
这已在 Ionic v6.0.4 中修复