Поскольку режим classi c скоро устареет, я пытаюсь перевести свой магазин в режим модулей. Однако я хочу сохранить состояние, действия, мутации и геттеры в отдельных файлах. Допустим, в настоящее время у меня только один модуль - аутентификация. Это структура моего магазина:
store
|_ modules
| |_auth
| |_actions.js
| |_getters.js
| |_mutations.js
| |_state.js
|
|_actions.js
|_auth.js
|_getters.js
|_index.js
|_mutations.js
|_state.js
store\modules\auth\state.js
в настоящее время имеет только одно свойство:
export const state = () => {
return {
token: null
}
}
Это store\modules\auth\getters.js
export const getters = {
isAuthenticated(state) {
return !!state.token
}
}
Тогда в моем store\auth.js
:
import {actions} from './modules/auth/actions'
import {getters} from './modules/auth/getters'
import {mutations} from './modules/auth/mutations'
import {state} from './modules/auth/state'
export {
actions,
getters,
mutations,
state
}
И, наконец, в моем store\index.js
У меня есть только этот код:
export default {
namespaced: true,
strict: true
}
Это дает мне следующую ошибку: [vuex] getters should be function but "getters.getters" in module "modules.auth" is {}.
Я часами чесал голову и не знаю, как с этим справиться.
Я пытался сделать что-то подобное, например:
export const getters = () => {
return {
isAuthenticated: state => !!state.token
}
}
Это скомпилировалось, но в консоли он выдал другую ошибку: [vuex] unknown getter: auth/isAuthenticated
И это также дает мне это предупреждение: store/modules/auth/state.js should export a method that returns an object
И там я думал, что я делаю это ...
Есть идеи, пожалуйста?