道具中的值,在mapState中使用无法正常工作Vue.js

时间:2018-12-19 03:12:39

标签: vue.js vuex

我想传递道具的值并将其用作mapState中的命名空间,然后显示错误:“初始化应用程序时出错TypeError:无法读取未定义的属性'store'' 这是我的代码:

ParentComponent:<Editor store="store-test" />

ChildComponent:

export default {
    props: ['store'],
    computed: {
        mapState(`${this.store}`, ['data'])
    }
}

但是我替换了this.store = store-test,我已经收到了想要的数据。 而且我不知道如何使用

...mapMutations({
  function() {
  }
})

相同

...mapState({
  data(state) {
    return state[this.store].data;
  },
})

1 个答案:

答案 0 :(得分:1)

由于mapState在编译时返回computed定义的值,因此您不能使用props,因为它们仅在运行时分配。

您将不得不使用

computed: {
  data () {
    return this.$store.state[this.store].data
  }
}

如果需要,您仍然可以使用mapState,但是不能将prop值用作命名空间字符串

mapState({
  data1 (state) { //  note: cannot be an arrow function
    return state[this.store].data1
  },
  data2 (state) {
    return state[this.store].data2
  }
})