有些情况下,我们在子组件使用$emit传出参数后,如果父组件在接收的时候添加了自定义参数,就无法再接收到子组件传出的参数了。
有办法可以解决这个问题,既能拿到子组件传过来的参数,又能在父组件自定义调用函数时传入的参数。

1.父组件不传参数时:

//父组件
<Item @handle="handle($event)"/>
//子组件
this.$emit("handle",childParam1,childParam2,childParam3);
//父组件vue
handle: function(childParam1, childParam2, childParam3) { //多参数传参
},

2.父组件传自定义的参数,子组件传多个参数时:

//父组件
<Item @handle="handle(arguments,parentParam)"/>
//子组件
this.$emit("handle",childParam1,childParam2,childParam3);
//父组件vue
handle: function(msg, parentParam) { //msg多参数传参
    var childParam1 = msg[0]; //第一个参数
    var childParam2 = msg[1]; //第二个参数
    var childParam3 = msg[2]; //第二个参数
},

其中parentParam是用户在父组件自定义的参数,childParam是在子组件传给父组件的参数

Logo

前往低代码交流专区

更多推荐