首页 文章

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

提问于
浏览
1

我是使用Vue和Vuex的新手,目前我正在尝试将道具绑定到我的组件,如下所示:

我的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”变量 . 因此,结果将是:例如:$ . store.state.active(它将返回'login') . 当我在console.log state.item时,我得到“未定义” . 解决这个问题的正确方法是什么,或者我应该尝试一种完全不同的方法?

1 回答

  • 0

    这是您的代码中的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;
       }
     }
    })
    

相关问题