首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Nuxt中,从"spa“改为"universal”,但我只得到文档的定义。

在Nuxt中,从"spa“改为"universal”,但我只得到文档的定义。
EN

Stack Overflow用户
提问于 2020-07-15 08:11:53
回答 1查看 1K关注 0票数 0

我想拥有可以复制和粘贴的urls,因此在nuxt.config中从spa变成了通用的urls。但是,我遇到这样的错误:“文档没有定义”。然后我在googled上搜索到这个回答,说我应该使用<no-ssr>元素。然而,在我的index.vue上使用它之后,我仍然会得到相同的错误。有人能帮我吗?

是node_modules/aws-amplify-vue/dist/aws-amplify-vue.common.js在抱怨文档丢失。

现在,我的index.vue测试如下:

代码语言:javascript
复制
<template>
 <v-layout column justify-center align-center>
  <div>
    <no-ssr placeholder="loading...">
      <div>hello</div>
    </no-ssr>
  </div>
 </v-layout>
</template>

而且我在项目中还有其他没有<no-ssr>的页面,如果这就是造成这种情况的原因。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-23 06:42:43

对于有同样问题的任何人,就我的情况而言,解决办法如下:

  1. 将if (process.client)添加到中间件(中间件/auth.js)中,然后需要AmplifyEventBus:
代码语言:javascript
复制
export const fetchUser = async () => {
  let signedIn = false;
    if (process.client) {
      const { AmplifyEventBus } = require("aws-amplify-vue");
      try {
        const user = await Auth.currentAuthenticatedUser()
        signedIn = true
      } catch (err) {
        signedIn = false
      }

      AmplifyEventBus.$on("authState", info => {
        if (info === "signedIn") {
          signedIn = true;
        } else {
          signedIn = false;
        }
      });
   }
  return signedIn
};
  1. 删除vue-局部存储并用@nuxtjs/通用存储替换它

也请参阅此:https://github.com/nuxt/nuxt.js/issues/7738

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62910381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档