Nuxtjs асинхронное ожидание на странице не работает при обновлении страницы - PullRequest
0 голосов
/ 03 июня 2018

Я пытаюсь получить данные в методе извлечения моей страницы, используя vuex и nuxt js, но всякий раз, когда человек обновляет страницу, он не работает, но работает, когда я перехожу через навигацию по nuxt

Так что на моей странице у меня есть

    fetch ({ store, params }) {
        store.dispatch('getJobspecialisims')
    },

   //IVE ALSO TRIED ASYNC
     async asyncData (context) {
        await context.store.dispatch('getJobspecialisims');
    },

ТАК в моем действии vuex у меня есть

   async getJobspecialisims({commit}){
      await axios.get(process.env.baseUrl+'/job-specialisims').then((res)=>{
        commit(types.SET_JOB_SPECIALISIMS, res.data.data)
      },(err)=>{
           console.log("an error occured ", err);
    });
  },

Теперь в моем компоненте, где я получаю записи

<div>
  <li v-for="(specialisim) in $store.getters.jobspecialisims">
    <!-DO STUFF HERE->   
 </li>

Запрос http никогда не отправляется, когдачеловек обновляет браузер

Куда я иду?Я бы предпочел метод асинхронного ожидания.Я понимаю, что это возвращает обещание, но я понятия не имею, как узнать, когда обещание выполнено.Страница всегда должна ждать, пока данные не будут полностью извлечены, поэтому на моей странице я назвал метод выборки или асинхронных данных

Что еще мне нужно добавить или изменить?

1 Ответ

0 голосов
/ 08 июня 2018

Для асинхронных действий вам нужно поставить return перед диспетчеризацией при вызове его внутри fetch или asyncData :

fetch ({ store, params }) {
  // store.dispatch('getJobspecialisims')
  return store.dispatch('getJobspecialisims')
},

Источник этого ответа: Проблема: действия Vuex, отправка со страницы

В любом случае, я до сих пор не понимаю, почему вы использовали , ожидайте с , затем .Если я, я буду использовать async await вот так:

async getJobspecialisims({ commit }) {
  const res = await axios.get(YOUR_URL);
  if (!res.error) {
    commit("getJobspecialisims", res.data.data);
  } else {
    console.log(res.error);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...