动态注册的vuex模块的rootState不响应
时间:2019-02-19
本文章向大家介绍动态注册的vuex模块的rootState不响应,主要包括动态注册的vuex模块的rootState不响应使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
我需要为从服务器检索的每个项目保留一些缓存的getter。
我为每个项目动态注册一个vuex模块,如下所示:
store.registerModule(['itemGet', id], {
namespaced: true,
state () { return {id} },
getters: {
exampleGetter (state, getters, rootState) {
if (rootState.oldModule.prop === 1) return state.id
return false
}
}
})
该模块已正确注册。
但是,每当我的这个动态模块的getter使用rootState
并查看在商店实例化中注册的其他模块时,它都不rootState
是被动的。
即使我做了一些突变的rootState(到另一个模块),在我的动态注册的模块干将使用rootState将始终保持rootState 只是在动态注册模块的时间 ...
在上面的例子中:
如果我store.state.oldModule.prop
通过突变进行变异,exampleGetter
则不会被动,只会rootState.oldModule.prop
在动态模块注册时知道
问题解决方案:
问题不在于getter本身,而是创建了对getter的引用,但在模块注册期间意外地硬编码了结果:
我做了什么:
store.$itemGetters[id] = Object.keys(getters) // my getter functions
.reduce((carry, key) => {
carry[key] = store.getters[`itemGet/${id}/${key}`]
return carry
}, {})
我改变了什么来解决它:
store.$itemGetters[id] = Object.keys(getters)
.reduce((carry, key) => {
carry[key] = _ => { return store.getters[`itemGet/${id}/${key}`] }
return carry
}, {})
因此,不要使用以下内容调用特定项ID的getter:
store.$itemGetters[id].exampleGetter
我现在必须这样做:
store.$itemGetters[id].exampleGetter()
- 关于查看dba_data_files的一个小问题(r7笔记第72天)
- 一则备库CPU报警的思考(r7笔记第69天)
- Java设计模式-观察者模式
- 今天处理的三个小问题——20160120(r7笔记第84天)
- 主备切换的准备工作(r7笔记第83天)
- Java设计模式-外观模式
- Java设计模式-组合模式
- 使用shell批量监控磁盘坏块(二) (r7笔记第80天)
- JavaWeb10-request&response你不得不学(1)
- dg的奇怪问题终结和分区问题答疑 (r7笔记第77天)
- 最近让我焦灼的四个问题(有解) (r7笔记第76天)
- JavaWeb10-reques;response你不得不学(2)
- 很多人比较纠结的约束和索引的关系(r7笔记第75天)
- JavaWeb09-Servlet(Java真正的全栈开发)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法