点击一个编辑按钮,使用现有的数据填充表单。
在点击按钮的时候update state 为编辑状态,
在componentWillReceiveProps中调用setFieldsValue方法。大概1分钟左右以后表单填充完成,
然后我在点击任意Input,继续等待1分钟左右。
setFieldsValue
本质是调用外层 wrapper 的 setState
,间接调用 componentWillReceiveProps
,所以死循环了。
请用 mapPropsToFields
http://ant.design/components/form/#Form.create(options)
@benjycui 谢了
mapPropsToFields 把 props 转为对应的值,可用于把 Redux store 中的值读出
Function(props): Object{ fieldName: Object{ value } }
没看到 我要在mapPropsToFields怎么写
嗨,有没有办法翻译这个转换?
@bnlambert你的问题是什么
我想看看如何用setFieldsValue
设置初始值。
我的日期选择器日历也出现了中文; 我该如何纠正它?
你可以试试moment.locale('en');
我需要'antd'的时刻还是需要单独下载?
请更明确一点。 谢谢
在您的网站上,有“setFieldsValue”的注释
please don't use it in componentWillReceiveProps, otherwise, it will cause an endless loop, more)
它链接到这个页面,我认为它是一个解释。 如果可能的话,我们能得到某种翻译吗?
谢谢
@coljung试试谷歌翻译。
@bnlambert @coljung或者如果您使用的是 chrome,请右键单击 -> 翻译成英文
我可以理解一些问题是用中文写的,以便维护者之间的交流更方便/更快,但是这个在官方文档中被引用,它是“它的一部分”,所以它应该被翻译。
替代方案:这里写的信息应该包含在官方文档中。
@benjycui IMO“尝试谷歌翻译”不是建设性评论,违反了CODE_OF_CONDUCT.md中提到的一些行为规则
- 使用热情和包容的语言
- 尊重不同的观点和经历
- 优雅地接受建设性的批评
- 专注于对社区最有利的事情
- 对其他社区成员表示同情
对于回复“:smile:”的 9 个人:你显然是双语的,谷歌翻译内容需要多长时间,如果需要,由于你的语言技能调整翻译并将内容粘贴到这里?
话虽如此:
componentWillReceivedProps
中调用setFieldsValue
$ 会导致一个循环,该循环最终会在 1 分钟后停止。 每个字段更改都会导致一个新的“无限”循环。setFieldsValue
导致 HOC 中的this.setState
,因此它会更改道具并直接导致您的componentWillReceiveProps
方法被调用。 这就是为什么有一个循环。 我们应该使用mapPropsToFields
。mapPropsToFields
用于从存储中读取数据,如何写入?这form是真难用,封装后使用成本太高
https://ant.design/components/form/#components -form-demo-global-state
mapPropsToFields 和 upload 冲突 上传会重置表单
最有用的评论
这form是真难用,封装后使用成本太高