首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vuex $state问题

Vuex $state问题
EN

Stack Overflow用户
提问于 2017-01-25 19:54:48
回答 3查看 2.8K关注 0票数 0

我有这样的错误:我以前认为这是路由器的问题,但创建新项目后,只有vuex问题仍然存在

enter image description here

这是我的main.js

代码语言:javascript
复制
import Vue from 'vue'
import App from './App'
import store from './store'

new Vue({
  el: "#app",
  store,
  render: h => h(App)
})

store.js:

代码语言:javascript
复制
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export const store = new Vuex.Store({
  state: {
    users: [
      {id: 1, name: 'Adrian', email: 'adrian@email.pl'},
      {id: 2, name: 'Magda', email: 'magda@email.pl'}
    ]
  }
})

和我使用$store的组件:

代码语言:javascript
复制
<template>
  <div class="usersNames">
    <ul>
      <li v-for="user in usersNames">{{user.name}}</li>
    </ul>
  </div>
</template>

<script>
  export default {
    name: 'usersNames',
    computed: {
      usersNames() {
        return this.$store.state.users;
      }
    }
  }
</script>
EN

回答 3

Stack Overflow用户

发布于 2017-01-27 08:58:50

你的例子看起来应该可以工作,但我想提供一个不同的策略,我认为这将是一个改进,也应该解决你的问题。

在您的存储区中为您试图在组件中访问的数据创建一个getter。

所以把你的商店改成这样:

代码语言:javascript
复制
 import Vue from 'vue'
 import Vuex from 'vuex'

  Vue.use(Vuex)

  export const store = new Vuex.Store({
    state: {
      users: [
       {id: 1, name: 'Adrian', email: 'adrian@email.pl'},
       {id: 2, name: 'Magda', email: 'magda@email.pl'}
      ]
    },
    getters:{
      users: state => return state.users
    }
  });

然后,在您的组件中,使用该getter来获取用户。

代码语言:javascript
复制
<script>
 export default {
    name: 'usersNames',
    computed: {
     usersNames() {
       return this.$store.getters.users
    }
   }
 }
</script>
票数 1
EN

Stack Overflow用户

发布于 2017-05-09 10:26:30

你可以将main.js:import {store}从'./store';

票数 0
EN

Stack Overflow用户

发布于 2017-03-09 01:50:57

似乎你的vuex没有正确注射到vue中。

也许与你的问题无关,但为了最好的实践,最好使用mapState助手;

在您的组件中:

代码语言:javascript
复制
import { mapState } from 'vuex'

export default {
  name: 'usersNames',
  computed: {
    ...mapState({
      usersNames: 'users'
    }),
    yourLocalComputed () {}
  }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41850996

复制
相关文章

相似问题

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