如何通过Vuex操作访问Nuxt上下文变量

时间:2019-04-28 12:28:30

标签: vue.js vuex nuxt.js

我想访问上下文变量以使用isMobile标志根据结果选择其他端点。我可以通过组件的dispatch传递它,但是我知道应该有一种方法来实现。

export const actions = {
...
  signUpGoogle({ commit }) {
    fireauth.useDeviceLanguage()

    if (context.isMobile) {
      fireauth.signInWithPopup(GoogleProvider).then ...

    } else {
      fireauth.signInWithRedirect(GoogleProvider)
    }

}

我在这里看到它可以在服务器init上获得,但是我真的不想依赖它,因为缓存会使事情搞砸

https://nuxtjs.org/guide/vuex-store/#the-nuxtserverinit-action

感谢您的帮助

3 个答案:

答案 0 :(得分:0)

当您需要访问该指针无法到达nuxt上下文的Nuxt上下文时,只需像下面那样使用

window.$nuxt

希望它将为您服务

答案 1 :(得分:0)

您可以在nuxtServerInit中做一件事,使用上下文将其设置为state,然后使用state.isMobile进行此类API调用。希望那应该解决这个问题。 如果不清楚,我可以进行编辑以提供一些代码示例

答案 2 :(得分:0)

我不确定您是否在这里谈论环境变量,但如果是的话,下面是答案。

查看此 GH issue,我们可以发现您可以使用 this.app.$config.isMobile(基本上在您的 publicRuntimeConfig 中引用环境变量也就是 nuxt.config.js 值)。