更改语言环境后重新加载商店数据

时间:2021-02-09 15:29:19

标签: nuxt.js nuxt-i18n

在我的应用程序中使用 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 请求和商店更新来更改语言环境

0 个答案:

没有答案