嗨,
我在根状态下有一个吸气剂,该吸气剂需要引用模块(过滤器)中的另一个吸气剂(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
getter和rootGetters都注册了过滤器模块(第一个{{1}和第二个console.log
):
3。和4. console.log
是undefined
,5和6.抛出错误,因为getters.filter
和rootGetters.filter
是undefined
,因此它们没有任何属性。
如何将getFilteredSpecialItems
放入根getSortedList
吸气剂中?
我感谢任何形式的帮助或建议。谢谢。
答案 0 :(得分:2)
您必须像这样访问命名空间的吸气剂:
rootGetters['filter/getFilteredSpecialItems']
不喜欢这样(不喜欢状态):
rootGetters.filter.getFilteredSpecialItems
从同一模块中的另一个吸气剂中,您应该能够做到
getters.getFilteredSpecialItems
如果它返回undefined
,那么您的getter可能正在返回undefined
?确认它实际上在被调用,请记住,如果自上次调用以来getter函数中没有可观察的数据发生变化,则可能会缓存其最后一个返回值。