element-ui dialog 延迟渲染的问题

刚写了个功能是在 dialog 里嵌套了一个表单,然后希望在打开或者关闭的时候重置表单,但由于这组件是延迟渲染的问题导致现在怎么尝试都不行,要么 Cannot read property 'resetFields' of undefined 要么就重置后根本没效果,感觉这东西好坑有没有什么好的办法?

阅读 6.8k
3 个回答

在mounted函数里面加上一行,让dialog不再懒加载。
this.$refs.yourDiaglog.rendered=true

给html中表单加一个ref值是form,然后:

this.$nextTick(() => {
   this.$refs.form.reset();
})

这样试试。

可以把你写的表单弄成一个组件,表单延迟加载完成后emit派发一个事件,dialog中接受到后执行重置表单的方法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题