在我的应用程序中使用 nuxt-i18n。我还调用了 api,结果存储在商店中。但是每次语言环境发生变化时,我都需要重新向api发送请求以获取所需语言的正确数据。
比如我有一个从api获取的category store
export const state = () => ({
categoriesList: [],
});
export const mutations = {
SET_CATEGORIES_LIST (state, categories) {
state.categoriesList = categories
},
}
export const actions = {
async getCategoriesList ({ commit }) {
return this.$axios.$get(`menu_header`, {
params: {
locale: this.$i18n.locale
}
})
.then(res => {
commit('SET_CATEGORIES_LIST',res)
console.log(res);
}).catch(err => {
console.log(err);
})
try {
await commit('SET_CATEGORIES_LIST', mock.categories)
} catch (err) {
console.log(err)
throw new Error('Внутреняя ошибка сервера, сообщите администратору')
}
},
}
在标题中
export default {
computed: {
...mapState({
categories: 'categoriesList'
}),
}}
更改语言时,存储中的数据保持静态,使用最初页面加载时的语言。
我不明白为了创建事件订阅者之类的东西,我不知道要挖掘哪种方式,以通过随后的 API 请求和商店更新来更改语言环境