Vuex,命名空间模块 getter 在根 getter 中不可用?
Vuex, namepaced module getters not available in root getter?
Namepaced 模块 getter 在根 getter、vuex 中不可用。
大家好,
我的根状态有一个 getter,这个 getters 需要从模块(过滤器)中引用另一个 getter (getFilteredSpecialItems)。我知道 rootGetters。我可以在 vue 组件中引用 filter/getFilteredSpecialItems,所以到目前为止它是有效的。
根状态
const getters: {
getSortedList: (state, getters, rootState, rootGetters) {
...
console.log(getters);
console.log(rootGetters);
console.log(getters.getFilteredSpecialItems);
console.log(rootGetters.getFilteredSpecialItems);
console.log(getters.filter.getFilteredSpecialItems);
console.log(rootGetters.filter.getFilteredSpecialItems);
...
}
}
过滤模块
const state: {
namespaced: true
...
}
const getters: {
getFilteredSpecialItems: (state, getters, rootState) => {
....
}
}
文件夹结构
store
| index.js
| getters.js
| mutations.js
| actions.js
| state.js
| filter (dir)
| \
| | index.js
| | getters.js
| | mutations.js
| | actions.js
| | state.js
getters 和 rootGetters 都注册了过滤器模块(第一个和第二个 console.log
):
getters
rootGetters
3.和4.console.log
是undefined
,5.和6.会报错,因为getters.filter
和rootGetters.filter
是undefined
, 所以它们没有任何属性。
如何获取根目录中的 getFilteredSpecialItems
getSortedList
getter?
感谢任何形式的帮助或建议。预致谢。
您必须像这样访问命名空间 getter:
rootGetters['filter/getFilteredSpecialItems']
不像这样(不像州):
rootGetters.filter.getFilteredSpecialItems
从同一模块中的另一个 getter,您应该能够做到这一点
getters.getFilteredSpecialItems
如果它 returns undefined
那么也许你的 getter 正在 returning undefined
?确认它确实被调用,请记住,如果自上次调用以来 getter 函数中的可观察数据没有发生变化,它的最后一个 return 值可能会被缓存。
Namepaced 模块 getter 在根 getter、vuex 中不可用。
大家好,
我的根状态有一个 getter,这个 getters 需要从模块(过滤器)中引用另一个 getter (getFilteredSpecialItems)。我知道 rootGetters。我可以在 vue 组件中引用 filter/getFilteredSpecialItems,所以到目前为止它是有效的。
根状态
const getters: {
getSortedList: (state, getters, rootState, rootGetters) {
...
console.log(getters);
console.log(rootGetters);
console.log(getters.getFilteredSpecialItems);
console.log(rootGetters.getFilteredSpecialItems);
console.log(getters.filter.getFilteredSpecialItems);
console.log(rootGetters.filter.getFilteredSpecialItems);
...
}
}
过滤模块
const state: {
namespaced: true
...
}
const getters: {
getFilteredSpecialItems: (state, getters, rootState) => {
....
}
}
文件夹结构
store
| index.js
| getters.js
| mutations.js
| actions.js
| state.js
| filter (dir)
| \
| | index.js
| | getters.js
| | mutations.js
| | actions.js
| | state.js
getters 和 rootGetters 都注册了过滤器模块(第一个和第二个 console.log
):
getters
rootGetters
3.和4.console.log
是undefined
,5.和6.会报错,因为getters.filter
和rootGetters.filter
是undefined
, 所以它们没有任何属性。
如何获取根目录中的 getFilteredSpecialItems
getSortedList
getter?
感谢任何形式的帮助或建议。预致谢。
您必须像这样访问命名空间 getter:
rootGetters['filter/getFilteredSpecialItems']
不像这样(不像州):
rootGetters.filter.getFilteredSpecialItems
从同一模块中的另一个 getter,您应该能够做到这一点
getters.getFilteredSpecialItems
如果它 returns undefined
那么也许你的 getter 正在 returning undefined
?确认它确实被调用,请记住,如果自上次调用以来 getter 函数中的可观察数据没有发生变化,它的最后一个 return 值可能会被缓存。