В приложении @ vue / cli 4.0.5 / vuex 3 с чтением данных из Laravel Backend API Я сохраняю некоторые параметры в таблице настроек базы данных и хочу прочитать их один раз и сохранить в хранилище vuex. Я проверяю, пусто ли значение site_name. Я
вызываю действие retrieveSiteName и получаю ошибку:
Error in render: "TypeError: Cannot read property 'dispatch' of undefined"
в моем src / store / index. js:
export default new Vuex.Store({
state: {// store data
status: '',
token: localStorage.getItem('token') || '',
user: null,
site_name: '', // I need to read this value once
...
}, // state: { // store data
getters: {
...
site_name(state) {
if (state.site_name.length > 0) {
return state.site_name
}
let site_name = localStorage.getItem('site_name')
if (site_name != null ) {
return site_name
}
// this.actions.retrieveSiteName(state)
// state.this.dispatch('retrieveSiteName')
this.dispatch('retrieveSiteName') // Error Here!
return ''
}, // site_name(state) {
...
actions: { // async methods
retrieveSiteName(context) {
console.log('retrieveSiteName::')
let apiUrl = process.env.VUE_APP_API_URL
axios.post(apiUrl + '/app_settings', 'site_name')
.then((response) => {
console.log('retrieveSiteName response::')
console.log(response)
context.commit('refreshSiteName', response.data.site_name)
})
.catch((error) => {
console.error(error)
})
}, // retrieveSiteName(context) {
Что такое допустимый способ вызова retrieveSiteName из метода get name?
Спасибо!