nzModal服务方式创建窗口如何reset表单?

我是nzModal服务方式创建的窗口,在窗口内创建的表单内使用array.push(),
array.splice()等不可逆方法操作表单值后,发现窗口取消时(点击右上角关闭按钮),再次打开表单,表单值未reset.
于是,如图,我设置nzOnCancel函数触发父组件重新加载。但是这是浪费性能的。
image.png
那么nzOnCancel应该怎么写来监听窗口关闭时清空表单?
或这样实现窗口自己监听关闭时间reset表单?

回复
阅读 1.1k
1 个回答

你的这个问题,理论上不应该存在.
因为以service传入Component的方式来创建modal在每次关闭时都会调用Component的Destroy方法

之后再次打开又会重新创建这个Component,相应的init方法之类的生命周期都会进行一遍

你发生的这个问题,我猜测可能性应该是因为你在Component内部操作了传入的row参数,array.splice()之类的操作,改变了row本身,当你再次打开modal的时候,又是使用了这个row,所以数据一直在变化.

如果你不想影响,可以考虑传入时,复制一份row,在Component里面不要改变原来的数据
如果不是row参数,建议你可以贴出你在Component里面做的操作

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