You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue具名插槽报Named slots must use '<template>' on a custom element怎么解决

错误原因

Vue具名作用域插槽的语法规则明确要求:v-slot指令只能绑定在<template>标签上使用,不允许直接挂载到自定义组件的根标签上。你当前将v-slot:user直接写在<User>组件标签上,违反了该语法规范,因此触发报错。

解决方法

将v-slot:user指令移动到包裹插槽内容的<template>标签上即可,修正后的代码如下:

<template>
    <div>
        <h3>Home</h3>
        <User>
            <template v-slot:user="{ user }">
                <div v-if="user">
                    <p>Logged-in as {{user.uid}} </p>

                    <!-- PASS USER STATE AS PROP -->
                    <UserProfile :user="user"/> 
                    <ChatList :uid="user.uid"/>
                </div>
                <Login v-else/>
            </template>
        </User>
    </div>
</template>

如果使用Vue 2.6及以上版本,还可以使用语法糖缩写,将v-slot:user简化为#user:

<template #user="{ user }">

内容的提问来源于stack exchange,提问作者Jordan Williams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 16:57:03