VUE同级传值多出undefined的问题

组件A跟组件B是同级的,都在components文件夹。

组建A给组建B传值。组建A的代码很简单

<组建B :init="cc"/> <组建B :ceshi="789"/>

组建B接收并输出,在视图层可以说是没有问题的,因为数据都可以正常显示出来。

export default {
props:{
init:{type:Array},
ceshi:{type:Number},
},
setup(props) {
const num = props.init
console.log(num);
const num1=props.ceshi
// console.log(num1);

    return {num,num1}
},  

}

然而在设置样式的时候,发现是有问题的,在控制台发现,输出数组的时候后面还跟着一个 undefined,所以我样式设置没效果,因为这个数组好像已经不是一个数组了。

03:15:11 379

Array(9) [ 输出的数组数据,12345一类的]

03:15:11 380 undefined

于是又测试直接传个789,发现也是会有两个数据,但是跟数组这里又不同,789第一次没有获取到,第二次才获取到。

03:25:06 644 undefined

03:25:06 645 789

我的问题是,是什么原因导致了这个undefined 的出现,已经如何解决掉这个,我只是想要那个数组的数据,不过也没整明白这个undefined 咋出来的,除了这个undefined 的出现,是没有任何报错的。

<组建B :init="cc"/> <组建B :ceshi="789"/>
你写了两次,肯定会掉两次,你的init一样 会出现 undefined,props 加个default,不传参数的默认值
把两个参数写在一个组件上面或者 要调用两次不同场景 请用 v-if销毁 组件,避免相互干扰

组件A是调用了两次组件B,都是传了一个值,那另一个肯定是undefined,这个问题逻辑写的很乱,代码感觉也不全还是怎么回事,感觉代码块里那两行跟上面对不上。

数据挂的时候可能存在异步,你加一个判断过滤一下undefined然后在进行样式修改

那你首先要确定下传过来的数组是否是正确的