【发布时间】:2021-07-22 14:32:45
【问题描述】:
我正在使用 Nuxt.js,我想在 Vuex 商店中使用 window.open() 打开一个窗口模式。
这是我的商店代码:
export const state = () => ({
popup: null
})
export const mutations = {
openPopup (state, url) {
state.popup = window.open(url, '', 'width=500,height=776')
state.popup.addEventListener('beforeunload', this.closePopup)
},
closePopup (state) {
if (state.popup) {
state.popup.close()
state.popup = null
}
}
}
问题是当我调用$store.commit('store-name/openPopup', item.url) 时,我收到以下错误:
(我在使用v-for 生成的元素中使用v-on:click 调用该函数,并且每个项目都有一个唯一的url)
RangeError: Maximum call stack size exceeded
at _traverse (webpack-internal:///./node_modules/vue/dist/vue.runtime.esm.js:2122)
at _traverse (webpack-internal:///./node_modules/vue/dist/vue.runtime.esm.js:2122)
at _traverse (webpack-internal:///./node_modules/vue/dist/vue.runtime.esm.js:2122)
at _traverse (webpack-internal:///./node_modules/vue/dist/vue.runtime.esm.js:2122)
at _traverse (webpack-internal:///./node_modules/vue/dist/vue.runtime.esm.js:2122)
at _traverse (webpack-internal:///./node_modules/vue/dist/vue.runtime.esm.js:2122)
at _traverse (webpack-internal:///./node_modules/vue/dist/vue.runtime.esm.js:2122)
at _traverse (webpack-internal:///./node_modules/vue/dist/vue.runtime.esm.js:2122)
at _traverse (webpack-internal:///./node_modules/vue/dist/vue.runtime.esm.js:2122)
at _traverse (webpack-internal:///./node_modules/vue/dist/vue.runtime.esm.js:2122)
_callee$ @ client.js?06a0:103
有谁知道这个错误的原因以及如何解决它?
【问题讨论】:
标签: javascript node.js vue.js nuxt.js vuex