正常就是直接价格ref然后点击事件后this.$refs.a.b()
但是我现在是子组件是弹框组件,然后我把组件内封装内置了一个按钮,点击后就可以显示这个弹框,所以就导致了现在我想通过父组件的其他按钮点击后触发子组件的方法不生效,原因我也知道,就是因为弹框没有显示的时候dom等都没有生成所以才会显示未定义
如果我弹框的组件显示隐藏是根据父组件的传值来的话那就可以父组件直接改变量让他显示出来,但是现在并不是的,是根据点击子组件内的按钮显示的,这种情况下请问如何让父组件传数据到子组件呢。
你的需求说的不太明白,我理解的你的需求是:点击子组件内按钮弹出子组件的弹窗。
如果是这样的话直接在按钮上绑定click事件弹出弹窗就行。
至于父组件向子组件传参,直接子组件上挂载数据,子组件内通过props接收就行了。
html
<el-table-column label="操作" :width="250">
<te mplate slot-scope="scope">
<el-button size="mini" class="edit"
@click="handleEdit(scope.$index, scope.row)"
>修改</el-button>
</template>
</el-table-column>
```javascript
handleEdit(index, row) {
this.$emit('openDialog', {type:'table',data:{index:index, row:row}});
},
```
表格组件调用时@openDialog=“自定义方法”
js:自定义方法(index,data){
打印一下
}
建议封装表格时,将操作列以插槽的方式填入,否则当其他表格的操作列名称改变时,不能使用,也不建议将弹窗直接放在表格组件中
如果以上回答对您有帮助,请帮忙点个赞哦!如有不懂,可以评论区继续沟通