【发布时间】:2018-01-26 16:54:50
【问题描述】:
这是我的商店模块的定义。
// rest defined above
const _GETTERS = {
getName: state => {
return state.current.name;
},
getLastName: state => {
return state.current.lastName;
},
getFullName: (state, getters) => {
// return `${state.current.name} ${state.current.lastName}`;
return `${getters.getName()} ${getters.getLastName()}`;
},
getMailAddress: state => {
return state.current.mailAddress;
}
};
const UsersStore = {
...
getters: _GETTERS
};
以上是我的user-store 模块,我收到Uncaught TypeError: getters.getName is not a function 错误。当我更改代码以使用访问state 而不是getters 的版本时,一切正常。下面是我将以上内容添加为模块的主要商店对象。
export default new Vuex.Store({
strict: process.env.NODE_ENV !== 'production',
state: _state,
getters: _getters,
actions: _actions,
mutations: _mutations,
modules: {
users: UserStore
}
});
这是它应该被渲染的地方,当直接访问商店而不是使用 getter 时它工作得很好。
import {Component, Vue} from 'vue-property-decorator';
import {mapGetters} from 'vuex';
const template = require('./app-footer.vue').default;
@Component({
mixins: [template],
computed: {
...mapGetters({
name: 'getFullName'
})
}
})
export default class AppFooter extends Vue {
}
【问题讨论】:
标签: typescript vue.js vuejs2 store vuex