Javascript 能否将组件道具传递给mapGetters vuex

Javascript 能否将组件道具传递给mapGetters vuex,javascript,vue.js,vuex,Javascript,Vue.js,Vuex,我开始制作一个通用的输入vue组件。在我担心更改输入中的数据之前,我只想从存储中获取初始值 我有这样的想法: <template lang="html"> <input class="input-text" type="text" name="" :value="value"> </template> <script> import store from '@/store/index'; export default { name: '

我开始制作一个通用的输入vue组件。在我担心更改输入中的数据之前,我只想从存储中获取初始值

我有这样的想法:

<template lang="html">
  <input class="input-text" type="text" name="" :value="value">
</template>

<script>
import store from '@/store/index';

export default {
  name: 'InputText',
  props: [
    'dataModel',
    'propertyName',
  ],
  computed: {
    value() {
      return store.state[this.dataModel][this.propertyName];
    },
  },
};
</script>

当我尝试后一种方法时,我得到了
this.dataModel
this.propertyName
两个值的
undefined
。调用
映射获取程序时,
的上下文会更改,因为它们位于新对象中。有没有一种方法可以将组件道具传递到
MapGetter
?有没有办法将
的上下文设置为组件而不是对象参数?还是我最初的方法/另一种方法是解决此问题的正确方法?

首先,不要导入组件中的存储,它可以作为
this.$store
使用,因此请删除:

import store from '@/store/index';

您不能像在mapGetters中那样使用
,因为它在您尝试使用它的上下文中不存在。在设置属性时,组件仍处于其生命周期的早期。据我所知,名称必须事先定义。

我认为您不能使用
this
,因为您处于新对象的上下文中,通常在功能块中,您可以执行
let self=this
来解决此问题。我想知道的是,是否有任何方法可以将组件道具传递给映射getter我认为不可能动态地分配这样的getter。我尝试了一段时间,但没有找到办法,但那是几个月前的事了。很酷,这对我来说已经足够好了,我有一个有效的解决方案,也许我只是想把这个问题设计得过于复杂。谢谢
import store from '@/store/index';