- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我是 vue.js 和 vuex 的新手,我对 mapstate 对象有疑问,首先我的商店中只有一个模块:
-Store
-index.js
-mutations.js
-actions.js
-state.js
状态.js :
export default {
userInfo: {
messages: [{ 1: 'test', 2: 'test' }],
notifications: [],
tasks: []
}
}
因此,当我尝试访问 userInfo 对象时,一切正常:
computed: {
...mapState(["userInfo"]),
}
然后我决定创建模块:
-Store
-modules
-ldap.js
-commons.js
-index.js
所以 userInfo
位于 commons.js
文件中,现在当我尝试获取对象时,我总是得到 undefined
:
commons.js
// state
const state = {
userInfo: {
messages: [{ 1: 'test', 2: 'test' }],
notifications: [],
tasks: []
}
}
export default {
actions,
mutations,
state
}
Component.vue
computed: {
...mapState(["userInfo"]), // <---- undefined
}
main.js :
import Vue from 'vue'
import Vuex from 'vuex'
import commons from './commons'
import ldap from './modules/ldap'
Vue.use(Vuex)
export default new Vuex.Store({
modules : {
commons,
ldap
}
})
你能告诉我如何访问 userInfo 对象吗?
谢谢。
最佳答案
考虑:
你的commons.js如下:
// state
const state = {
userInfo: {
messages: [{ 1: 'test', 2: 'test' }],
notifications: [],
tasks: []
}
}
export default {
namespaced: true, // <== make sure this is defined
actions,
mutations,
state
}
main.js 像这样导入它:
import commons from './commons'
// ..
export default new Vuex.Store({
modules : {
commons,
ldap
}
})
然后更新Component.vue:
import { mapState } from 'vuex'
// ...
computed: {
...mapState('commons', ["userInfo"]), // <== add module name here
}
或者
import { createNamespacedHelpers } from 'vuex'
const { mapState, mapActions } = createNamespacedHelpers('commons')
// ... notice module name above ^^^^^^^^^
computed: {
...mapState(["userInfo"]),
}
"[vuex] unknown mutation type: "
由于您现在正在命名您的 commons
模块,因此该模块的突变现在必须加前缀。
所以,假设你有一个像这样的突变:
const mutations = {
changeName(state, data) {
state.name = data;
}
}
export default {
namespaced: true,
actions,
mutations,
state
}
然后你像这样使用它:
this.$store.commit('changeName', "New Name");
现在像这样使用它:
this.$store.commit('commons/changeName', "New Name");
关于vue.js - Vuex mapstate 对象未定义和 "[vuex] unknown mutation type: ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49192961/
我有一个模块 export default { namespaced: false, state, actions, mutations, getters }; 在我的组件中我尝试
我正在尝试在我的 Vue 页面中映射我商店的状态变量: export default { data: () => ({ localData: []
我正在动态注册 vuex 商店模块 store.registerModule('home.grid', GridStore) 然后在组件中: export default { name: 'GridC
我looked at several questions弄清楚我是什么做错了。在我看来一切都正确设置。 目标 根据 COMPONENT A 的值,在 DEPENDENT COMPONENT 中使用 v
我一定是遗漏了什么。如何将 vuex mapState 与多个模块一起使用? 据了解,除了将对象作为参数传递外,命名空间 mapState 还可以采用两个参数:命名空间和表示模块成员的对象名称数组。像
我在 Vue 2 项目中使用 typescript ,现在我需要第一次使用 Vuex 和 typescript 。我根据在 SOF 或博客上找到的答案写了这篇文章,但它给了我错误,我不知道如何解决它。
我正在 Java 中实现一个 Flink 程序,以使用 MapStateDescriptor 处理状态。我的实现基于此 source 。由于某种原因,MapState 保留了以前的值,我无法计算出我想
我正在尝试使用 Axios 将所有数据从 API 返回到我的 View ,并使用 Vuex 来存储我的状态。此源代码可以返回'''console.log'''但不能传递给 View 。 我曾尝试将 m
我尝试将 Vuex 代码分离到模块中,但无法从 mapState() 获取数据。 创建模块和使用映射的最佳方式是什么? 我有一个存储文件夹: ├── store │ └── index.js |
我正在编写一段使用 org.apache.beam.sdk.state.MapState 的数据流转换实现缓存功能。然而在介绍MapState ,单元测试开始功能障碍。异常显示:java.lang.U
我尝试使用 mapState 函数从商店获取状态,但我无法使用将值返回到我的模板代码中的生成代码... // Some code
无法在重新加载页面后将 mapState 的值分配给 data 属性,如果您转到子页面,它可以工作,但如果您已经站在子页面并重新加载浏览器,则不会。 计算的 mapState computed: {
我在我的组件中使用了一个存储值并尝试更新它。当我点击按钮时存储值发生了变化,但是这个变化没有反射(reflect)在组件输出中(即 {{query}}) span {{qu
我有这个代码: computed: { mapState(["appErrors", "user", "profilesFor"]), compiledData () {
我想通过 mapState 分配 setter 方法。我目前使用一种变通方法,将我感兴趣的变量 (todo) 命名为临时名称 (storetodo),然后在另一个计算变量 中引用它>待办事项。 met
我有一个由第一个预处理任务组成的状态机,它生成一个数组作为输出,随后的映射状态使用它来循环。第一个任务的输出数组太大,状态机抛出错误 States.DataLimitExceeded :The sta
在 vuex mapState 中计算数据时,我有一项重要任务要做。每次数据更改时,我都需要调用此 vue 方法 countAlerts;为此,计算属性需要调用该方法,但是 this 作用域在使用 i
所以我正在试验一个使用 vue cli 创建的新项目,我在其中使用路由器和 VueX 所以在我的 HelloWorld.vue 文件中,我在脚本部分有这段代码: import { mapState }
我期望如果我有一个模块有 namespaced:false(我认为这也是默认的)那么它的 state 应该是“全局”的一部分"或 "root"命名空间,我将能够执行 "...mapState('som
我正在为 Vue.js 运行一些测试代码,并通过脚本标签包含 Vue.js、Vuex 和 javascript 文件(因为它仅用于测试目的,我不想使用构建工具)。 大部分代码运行正常,但 Vuex m
我是一名优秀的程序员,十分优秀!