父组件调用子组件方法,报undefined问题

TypeError: Cannot read property 'open' of undefined

代码

实现效果:点击书本弹出dialog层,v-if=selected控制显示隐藏;
初始化时selected: undefined,dialog层不渲染;
点击触发:点击时,selected=book,dialog层开始渲染的同时调用dialog的子方法,这时dialog层可能还没有初始化完成,所以报undefined错误。
解决方法加延时处理

preview (book) {
  this.selected = book
    setTimeout(() => {
      this.$refs.dialog.open()
    }, 10)
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容