首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在路由器中使用vuex

如何在路由器中使用vuex
EN

Stack Overflow用户
提问于 2020-08-16 16:45:18
回答 2查看 44关注 0票数 0

我想用store读取router中的数据,但它不起作用

我尝试了三种方法,但没有人是对的。

试着用

代码语言:javascript
运行
复制
// ReferenceError: store is not defined
console.log(store.state); 

// ReferenceError: $store is not defined
console.log($store.state);

// TypeError: Cannot read property '$store' of undefined
console.log(this.$store.state);

如果我在App.vue中使用它,它可以工作。

App.vue

代码语言:javascript
运行
复制
export default {
  created() {
    console.log(this.$store.state.user);
  },
}

我该怎么办?

存储/index.js

代码语言:javascript
运行
复制
state: {
  user: {
    loggedIn: false,
    data: null
  },
},

路由器/index.js

代码语言:javascript
运行
复制
router.beforeEach((to, from, next)=>{
    // console.log(store.state);
    // console.log($store.state);
    console.log(this.$store.state);
   // if(this.$store.state.user.loggedIn){
   // next('/login');
  }else
    next();
})
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-16 16:56:48

试着导入它:

代码语言:javascript
运行
复制
import store from '../store/';

然后按以下方式使用:

代码语言:javascript
运行
复制
store.state

确保在store/index.js中导出它

代码语言:javascript
运行
复制
export default new Vuex.Store({
     //config
});
票数 1
EN

Stack Overflow用户

发布于 2020-08-16 16:58:04

您可以在$store中使用App.vue的原因是您在app.js中导入了store.js并添加到Vue实例中。如果您想在另一个js文件中使用您的vuex存储,只需导入它。

代码语言:javascript
运行
复制
import Store from './store.js';

console.log(Store);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63439507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档