vue.js - Vuex-map-fields 通过模块更新多个 store
问题描述
我正在使用 Vuex 模块来说明我的数据。我将数据存储在多个模块中,以保持我的代码库整洁。
使用 vuex-map-fields 时,我遇到了使用来自多个模块的数据的情况。似乎没有办法做到这一点,或者我做错了。
以下是我当前的代码;我的组件
<template>
<div class="">
<input type="text" v-model="no_panels"><br>
<input type="text" v-model="firstName"><br>
<router-link to="/step-2">Go to step 2</router-link>
</div>
</template>
<script>
import { createHelpers } from 'vuex-map-fields';
const { mapFields } = createHelpers({
getterType: [
'getKitchenField',
'getApplicantField',
],
mutationType: 'updateKitchenField',
});
export default {
computed: {
...mapFields(['no_panels', 'firstName', 'lastName'])
},
}
</script>
我的店铺档案
import kitchen from './kitchen';
import applicant from "./applicant";
export default {
modules: {
kitchen: kitchen,
applicant: applicant
},
strict: false
}
申请者.js
import { createHelpers } from 'vuex-map-fields';
const { getApplicantField, updateApplicantField } = createHelpers({
getterType: 'getApplicantField',
mutationType: 'updateApplicantField',
});
export default {
state: {
firstName: '',
lastName: ''
},
getters: {
getApplicantField
},
mutations: {
updateApplicantField
}
}
上面的代码导致以下错误:
渲染错误:“TypeError:this.$store.getters[getterType] 不是函数”
解决方案
我是 vuex-map-fields 的创建者,作者在 GitHub 上问了同样的问题:
无需将多个 getter 传递给createHelpers()
,您可以解构并重命名 的返回值createHelpers()
并调用它两次。
const { mapFields: mapKitchenFields } = createHelpers({
getterType: 'getKitchenField',
mutationType: 'updateKitchenField',
});
const { mapFields: mapApplicantFields } = createHelpers({
getterType: 'getApplicantField',
mutationType: 'updateApplicantField',
});
export default {
computed: {
...mapKitchenFields(['no_panels']),
...mapApplicantFields(['firstName', 'lastName']),
},
}
如果 destructuring 语法对您来说是新的,您可以从 Wes Bos 阅读更多关于它的信息:https ://wesbos.com/destructuring-renaming/
推荐阅读
- java - MongoDB 正则表达式不区分大小写的搜索查询耗时太长
- python - 第一次 Python 用户对 xlrd 错误感到困惑
- odoo - 如何限制在odoo中单击自定义按钮时保存记录
- youtube-api - 查找频道的 YouTube 用户名
- javascript - Firebase 身份验证显示名称
- xcode - UISearchBarDelegate 应用程序在生产中崩溃
- react-quill - 在反应羽毛笔编辑器中输入10个字符后如何防止键盘输入事件?
- python - 键入的每个字母都调用功能
- android - 构建Android项目时如何解决AAR依赖错误
- python - Pygame:AttributeError:'NoneType'对象没有属性'fill'