前端踩坑小结:当elementui的el-dialog组件中包含子组件时,用refs调用子组件时的undefined问题
今天写VUE时我在elementui的el-dialog组件中包含了一个子组件。
然后我通过$refs调用该子组件里面的方法,在控制台上却显示undefined。
因为自己之前用过refs来调用子组件方法,但是没有遇到过这种问题,刚开始自己觉得可能是因为执行顺序的问题,就用promise来写。
可以看到还是同样的问题,后来找到了一个土方法setTimeout,通过这样来保证程序的执行顺序。
结果成功运行,完美解决了问题。
后来在网上找了一下,初步估计应该是elementUI的组件渲染顺序问题。但是我依然还是一头雾水,为什么我用promise也不行?而且为什么要用setTimeout来运行单
独的一条语句refs才可以?到底这个问题是怎么产生的呢?希望有大神能够在评论区告诉我一下。
对了,在上面图片中setTimeout里面的方法是refs,也就是说当控制对话框弹出的变量为true后,再运行refs才可以,如果说我把refs和this.dialogVisible=true的位置
对换一下,这个程序也是会报错的。