NuxtJS: как получить доступ к состоянию Vuex на стороне сервера

Я использую перехватчик NuxtJS fetch() для получения асинхронных данных из службы REST. Ниже приводится запрос

async fetch() {
  let response = await this.$axios.$get(`http://localhost:8080/app-server/v1/post/id/${this.$route.params.id}`);
}

Мне также нужно отправить необязательный параметр запроса uid, который является идентификатором пользователя в случае, если пользователь вошел в систему. Идентификатор пользователя хранится в состоянии Vuex и может быть доступен на стороне клиента, как показано ниже

это.$store.state.user.userDetails.id

Но когда страница перезагружается и на стороне сервера выполняется fetch(), возвращается значение null. Я ищу способ получить доступ к этому состоянию и на стороне сервера. Я пробовал использовать контекст Nuxtthis.$nuxt.contextкак показано ниже, но он тоже возвращает null при запуске на стороне сервера.

это.$nuxt.context.store.state.user.userDetails.id

Любые предложения, как я могу получить доступ к состоянию Vuex на стороне сервера. Спасибо

1 ответ

Существует предопределенный метод nuxtServerInit, который вы можете использовать в своем магазине, чтобы получить идентификатор пользователя для vuex на стороне сервера перед выборкой данных. https://hashinteractive.com/blog/using-nuxtserverinit-in-vuex-to-fetch-component-data/

Затем вы можете получить его из магазина с помощью метода fetch. Nuxt 2.12.2: Заполнение магазина новым методом выборки

Другие вопросы по тегам