如何修复“超出最大调用堆栈大小”错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何修复“超出最大调用堆栈大小”错误相关的知识,希望对你有一定的参考价值。
我想在渲染页面之前从firebase实时数据库中获取数据,我正在使用vuex存储来处理我的所有数据。
存储/ index.js
state: {
loadedPosts: []
},
mutations: {
setPosts(state, posts) {
state.loadedPosts = posts;
},
},
actions: {
nuxtServerInit(vuexContext, context) {
return axios
.get("https://new-nuxt-blog.firebaseio.com/posts.json")
.then(res => {
const postsArray = [];
for (const key in res.data) {
postsArray.push({ ...res.data[key], id: key });
}
vuexContext.commit("setPosts", postsArray);
})
.catch(e => context.error(e));
},
setPosts(vuexContext, posts) {
vuexContext.commit("setPosts", posts);
}
},
但我得到一个错误,说超出RangeError最大调用堆栈大小
任何人都可以帮助我修复此错误,我想要获取的数据就是这个对象:
{"-Lcq_6OaDEff_FPWoMux":{"author":"Ayman Tarig","content":"new nuxt blog","thumbnailLink":"http://smarterware.org/wp-content/uploads/2016/09/technology1.jpg","title":"new nuxt blog"}}
答案
我尝试运行你的代码,它运行得很好 - 我所做的改变是 -
使用单独的出口和这个。$ axios
export const state = () => ({
loadedPosts: []
})
export const mutations = {
setPosts(state, posts) {
state.loadedPosts = posts;
}
}
export const actions = {
nuxtServerInit(vuexContext, context) {
// return this.$axios <----CHANGE I MADE
// code removed for brevity
},
setPosts(vuexContext, posts) {
vuexContext.commit("setPosts", posts);
}
}
它工作得很好 - 附上我的屏幕截图
以上是关于如何修复“超出最大调用堆栈大小”错误的主要内容,如果未能解决你的问题,请参考以下文章