Доступ к свойству ctx в макете в приложении Nuxt - PullRequest
0 голосов
/ 06 февраля 2019

Я разрабатывал приложение Nuxt в режиме ssr.

Когда я устанавливаю свойство isMobile на ctx с помощью промежуточного программного обеспечения, я хочу иметь доступ к нему в моем макете.

Проблема в том, что я думаю, что nuxtServerInit выполняется до промежуточного программного обеспечения, поэтому я не могу зафиксировать значение в хранилище vue.

Это промежуточное программное обеспечение, которое я использую, устанавливает isMobile на ctx:

export default function (ctx) {
   const userAgent = ctx.req ? ctx.req.headers['user-agent'] : navigator.userAgent
   ctx.isMobile = /mobile/i.test(userAgent)
}

и вот как я пытался поймать эту информацию:

export const actions = {
   nuxtServerInit ({ dispatch }, ctx) {
      dispatch('app/setIsMobile', ctx.isMobile) // ctx.isMobile is always undefined
   }
}

Есть идеи, как получить доступ к ctx с моим свойством внутри моего макета?

1 Ответ

0 голосов
/ 07 февраля 2019

Я нашел способ сделать это, просто отправив данные для хранения из промежуточного программного обеспечения:

export default function ({ store, req }) {
   const userAgent = req ? req.headers['user-agent'] : navigator.userAgent
   const isMobile = /mobile/i.test(userAgent)
   dispatch('app/setIsMobile', isMobile)
}
...