如何将点击事件添加到Vue广告位?

时间:2020-01-30 06:18:15

标签: vue.js jsx

父元素:

<solt-div>
  <button slot="trigger">选取文件</button>
</solt-div>

插槽组件:

export default {
  render () {
      return(<div>{this.$slots.trigger}</div>)
  }
}

我需要向this.$slots.trigger添加一个点击事件,以便触发solt-div组件中的功能

但是此事件无法添加到外部DIV中,因为还有其他插槽

<trigger @click="fn"></trigger>

1 个答案:

答案 0 :(得分:1)

尝试使用createElement在render函数中添加事件后,我来到了解决方案,您可以使用引用在solt-div中调用函数

父母

<solt-div ref="soltDiv">
    <button slot="trigger" @click="$refs.soltDiv.fn()">test</button>
</solt-div>

solt-div

export default {
  render () {
      return(<div>{this.$slots.trigger}</div>)
  },
  methods: {
    fn() {
      // do stuff
    }
  }
},