通过传递变量获取 Vuex 状态数据

Get Vuex state data by passing a variable

我是 Vue 和 Vuex 的新手,目前我正在尝试像这样将 props 绑定到我的组件:

我的 HTML 看起来像这样:

<div id="vuemodal">
  <modal :active="get('active')" :login="get('login')" :register="get('register')">
  </modal>
</div>

我的 Vue 实例如下所示:

var modal = new Vue({
  el: '#vuemodal',
  store,
  data: {
    active: '',
    login: false,
    register: false,
  },
  methods: {
    get: function(item){
      var state = this.$store.state;
      return state.item;
   }
 }
})

我的 Vuex 商店是这样的:

const store = new Vuex.Store({
  state: {
    active: 'login',
    login: true,
    register: false
  }
})

在 "get" 方法中,我想将我的 "item" 变量绑定到我的 "state" 变量。因此,例如,结果将是这样的:this.$store.state.active(并且它将是 return 'login')。 当我 console.log state.item,我得到 "undefined"。解决此问题的正确方法是什么,还是我应该尝试一种完全不同的方法?

这是您代码中的 jsfiddle,它正确地打印了存储变量。确保使用正确版本的 Vue 和 Vuex。

const store = new Vuex.Store({
  state: {
    active: 'login',
    login: true,
    register: false
  }
})

var modal = new Vue({
  el: '#vuemodal',
  store,
  data: {
    active: '',
    login: false,
    register: false,
  },
  methods: {
    get: function(item){
      var state = this.$store.state;
      console.log("state is ", state[item])
      return state.item;
   }
 }
})