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: Заполнение магазина новым методом выборки