首页 > 解决方案 > 在这种情况下不能使用 v-img 吗?

问题描述

我将此代码复制/粘贴到我的 Nuxt.js 应用程序中,我在其中使用 Vuetify 到一个组件文件中,其中只有<template>标签包装它:

<v-card>
    <v-container
      fluid
      grid-list-lg
    >
      <v-layout row wrap> 

        <v-flex xs12>
          <v-card color="purple" class="white--text">
            <v-layout row>
              <v-flex xs7>
                <v-card-title primary-title>
                  <div>
                    <div class="headline">Halycon Days</div>
                    <div>Ellie Goulding</div>
                    <div>(2013)</div>
                  </div>
                </v-card-title>
              </v-flex>
              <v-flex xs5>
                <v-img
                  src="https://cdn.vuetifyjs.com/images/cards/halcyon.png"
                  height="125px"
                  contain
                ></v-img>
              </v-flex>
            </v-layout>
            <v-divider light></v-divider>
            <v-card-actions class="pa-3">
              Rate this album
              <v-spacer></v-spacer>
              <v-icon>star_border</v-icon>
              <v-icon>star_border</v-icon>
              <v-icon>star_border</v-icon>
              <v-icon>star_border</v-icon>
              <v-icon>star_border</v-icon>
            </v-card-actions>
          </v-card>
        </v-flex>
      </v-layout>
    </v-container>
  </v-card>

但我在 Google Chrome 开发工具中收到此错误消息:

这可能是由不正确的 HTML 标记引起的,例如在其中嵌套块级元素

,或失踪。Bailing 水合作用并执行完整的客户端渲染。

我注意到当我删除组件时,此错误消息消失了。如何解决这个问题?

我看到了类似标题的问题,例如:Vuejs 错误:客户端渲染的虚拟 DOM 树与服务器渲染的不匹配,但我已经知道是哪个组件导致了问题。

这在 Chrome 和 Firefox 中都会发生

标签: javascriptvuetify.jsnuxt.js

解决方案


用 no-ssr 包裹 v-img。这样就可以了。

<no-ssr>
  <v-img
    src="https://cdn.vuetifyjs.com/images/cards/halcyon.png"
     height="125px"
      contain
  ></v-img>
</no-ssr>

推荐阅读