下午重构一个页面,打印表单的数据,结果发现表单内一个属性的值是空的,这个属性是一个数组,打印出来是空数组。但我明明在表单内填上了数据。
于是我挨个检查属性key是不是在某个地方写错了。结果没有犯低级错误。
因为用的是antd,值都存放在表单组件内部,又单独打印了这个属性,结果值是存在的。但调用表单的validateFields方法获取的value,那个属性就是空数组。
我怀疑value是只读的,采用解构方法复制value内部的属性,结果还是空的。
我又单独获取那个属性的值,重新赋值给value,结果value的那个属性还是空数组。
我同时打印单独获取的属性和value,value的那个属性是空的,单独获取的属性是有值的。
我没招了,找到以前创建这个页面的人,他看了一下,没有低级错误,真的没有值。
但是
打印出来的value在不展开的时候,那个属性的length为1,展开以后,那个属性的length是0.于是断定,那个属性其实是有值的,但被删除了。
于是查看后续代码,果然找到了删除这个属性的地方。
这个破问题折磨了我4个小时。