如何在nuxt的asyncData函数中访问vue store?

35

在一个组件中,我想使用asyncData函数访问存储器,代码如下:

asyncData({ app, params }) {
var url = `https://myapi/news/${app.$store.state.market}/detail/${params.id}`;
return app.$axios.get(url).then(response => {
  return { actu: response.data };
});

}

但是我收到了“无法读取未定义的属性'state'”

这里是否有另一种方式来接收存储的状态?

2个回答

54
您需要从上下文中获取store。参考
asyncData({ app, params, store }) {
   var url = `https://myapi/news/${store.state.market}/detail/${params.id}`;
   return app.$axios.get(url).then(response => {
      return { actu: response.data };
});

2

这对我很有用

存储/index.js

...

state: {
  loadedPages: []
}
...

页面

async asyncData(context) {
...
console.log(context.store.state.loadedPages)
...

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接