@AndrewRusinas

Почему данные из vuex не отображаются?

В экшенах есть запрос к бд. На нужной странице я вызываю его в хуке mounted.

Экшн отрабатывает без ошибок и данные записываются в хранилище, что можно увидеть в devtools.
Все данные так же корректно отображаются, если они были прежде загружены.
Однако, проблема в следующем: если страницу полностью обновить, то данные не успевают подставляться. Я пробовал вызывать экшн в разных хуках, но ситуация не меняется.
  • Вопрос задан
  • 562 просмотра
Пригласить эксперта
Ответы на вопрос 2
virtual_hack2root
@virtual_hack2root
.NET Core, JS, DevOps
Вам нужно заблокировать обновление страницы (этап рендера) до момента полной загрузки всех модулей и/или данных одним из традиционных способов.
Ответ написан
Комментировать
kleinmaximus
@kleinmaximus
Senior Full-stack Javascript Developer
В data компонента или state хранилища заведите какое-то поле под статус (по умолчанию, "не готов"). Пока статус в значении "не готов", показывайте заглушку или спиннер. Поставьте так же либо вотчер в компоненте на значение в сторе, либо вотчер на мутацию, либо ... . В общем, когда данные во vuex поменяются, меняйте свой статус на "готов".

Update: Если же Вы используете какие-то решения, типа vue-ssr, nuxt, uvue и т. д., в общем, где есть асинхронные методы (asyncData), то в таких методах можно возвратить Promise, и пока он не "резолвнется" рендеринга не произойдет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы