Extraneous non-props attributes (XXX) were passed to component but could not be automatically

6 篇文章 0 订阅

[Vue warn]: Extraneous non-props attributes (XXX) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.
at <ChooseLeisureLocationIndex locationList= [] onUpdate:locationList=fn serviceName=“getFreeLocationList” … >

在这里插入图片描述
大致意思就是 ➡ 额外的非prop属性(xxx)已传递给组件,但由于你的组件渲染片段和文本根节点,无法自动继承。

造成这个问题的原因见下面两张图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

父组件给子组件传值时,没有接收的地方,且子组件中并非一个根节点,所以才回出现这个警告。
那么有时只有一个根节点时不会出现这个警告,是因为触发了vue的透传attribute

解决办法
方法一:
就是你有需要传输一个prop属性的数据给子组件,但是你在子组件中忘记用defineProps接收,无意中触发了透传 Attributes,在使用setup语法糖的情况下注意使用defineProps接收props属性数据。
方法二:
就是你不需要传输一个prop属性的数据给子组件,但是你在整理代码时,忘记将父组件的子组件标签中的:xxx=“xxx"删除。
方法三:
你确确实实需要传递一个非prop属性数据到子组件中,但子组件中存在多个根节点,你可以在该根节点使用v-bind=”$attrs"进行显式绑定,就可以避免报错了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值