繁体   English   中英

[Vue 警告]:默认插槽遇到非函数值。 首选 function 插槽以获得更好的性能

[英][Vue warn]: Non-function value encountered for default slot. Prefer function slots for better performance

我正在为 Vitest 中的 Vue 3 Composition API 组件编写单元测试。 我的所有单元测试都通过了组件而没有问题 - 但是,当我运行它们时,我从 Vue 收到了这个警告:

[Vue warn]: Non-function value encountered for default slot. Prefer function slots for better performance.

有问题的代码是一个Teleport标签,它在 store 值为 true 时呈现模式。 如果我将该代码注释掉,或清空任何内容的插槽,则不会出现警告。 我尝试过 stubing Teleport ,其中模板是<div>Hello World</div><div><slot></slot></div> ,但这并没有解决问题。

<Teleport to="body">
      <Modal v-if="showModal" :is-open="showModal" @close="closeModal">
        <component
          :is="childBlock.component"
          v-for="childBlock in $store.ui.getActiveModalCardContent"
          :key="childBlock._uid"
          :blok="childBlock"
          class="col-span-2"
        />
      </Modal>
    </Teleport>

我查看了警告代码,但我看到的解决方案使用渲染 function 来创建他们的组件,而不是使用模板发生。 应用程序运行时,我在控制台中没有收到任何问题、警告或其他信息; 仅在测试时。

我尝试用返回数据的 function 替换一些传入的数据,但这不起作用。

我是否缺少某种手动导入? 还是我需要vi.mock()一些东西?

这些是我能找到的最相关的解决方案,但尝试应用这些解决方案但没有成功: “遇到默认插槽的非函数值。” 在 Vue 3 中组成 API 组件

https://forum.vuejs.org/t/how-to-avoid-non-function-value-encountered-for-default-slot-warning/107039

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM