vue-vben-admin icon indicating copy to clipboard operation
vue-vben-admin copied to clipboard

ifShow删除了Dom,getFieldsValue( ) 还是能获取字段并且存在值

Open siluozhang516 opened this issue 3 years ago • 6 comments
trafficstars

使用 useForm 做动态表单时,使用 ifShow 控制显示,但是最终 getFieldsValue( ) 还是能获取 ifShow = false 的字段,并且其值也存在,这个问题是否考虑优化,或者提供其区分的Hook,不然动态表单的意义何在呢?

siluozhang516 avatar Jun 08 '22 07:06 siluozhang516

是啊 现在还得手动整理数据 请问还有更好的方法么

suka233 avatar Jun 27 '22 23:06 suka233

@suka233 目前我采用的方式是在 ifShow 的回调参数 RenderCallbackParams ,通过其model 对象上的属性清空的值,不知道是否还有更好的方法

siluozhang516 avatar Jun 28 '22 10:06 siluozhang516

@suka233 目前我采用的方式是在 ifShow 的回调参数 RenderCallbackParams ,通过其model 对象上的属性清空的值,不知道是否还有更好的方法

请教一下,在使用vue的v-if指令的时候,其实也存在这种问题,v-model收集的值不会因为元素的销毁而清除掉,请问有什么比较好的解决方案么?

suka233 avatar Jul 15 '22 09:07 suka233

用removeSchemaByFiled和appendSchemaByField来实现不收集value的动态表单,show和ifShow只是控制显隐,文档中说的很清楚

rex-ll avatar Jul 18 '22 14:07 rex-ll

@suka233 这个解决方案很多,双向绑定并不会因为DOM的销毁而重置值

用removeSchemaByFiled和appendSchemaByField来实现不收集value的动态表单,show和ifShow只是控制显隐,文档中说的很清楚

@DoubleRayWang 此操作和手动清空值或删除字段方法类似,都需要判断 ifShow 为false时使用单独的逻辑去处理,文档中提供的 Hook 应该是只获取到DOM存在的字段,不存在的也是开发者不使用的数据。

siluozhang516 avatar Jul 19 '22 01:07 siluozhang516

@suka233 这个解决方案很多,双向绑定并不会因为DOM的销毁而重置值

用removeSchemaByFiled和appendSchemaByField来实现不收集value的动态表单,show和ifShow只是控制显隐,文档中说的很清楚

@DoubleRayWang 此操作和手动清空值或删除字段方法类似,都需要判断 ifShow 为false时使用单独的逻辑去处理,文档中提供的 Hook 应该是只获取到DOM存在的字段,不存在的也是开发者不使用的数据。

请教一下,请问有哪些比较好的解决方案呢~~

suka233 avatar Jul 19 '22 02:07 suka233

请教一下,请问有哪些比较好的解决方案呢~~

自己再封装或者扩展一下这个hook好了

wangjue666 avatar Oct 23 '23 10:10 wangjue666