antd Form组件的onValuesChange回调,在通过form.setFieldValue / form.setFieldsValue api修改时,不会触发。
可以看github上antd问题模块
官方给的的理由是:如果不这样可能会导致死循环
from.validateFields((err, val)=> {}) // 无响应
发现无响应, 无报错, 完全蒙逼了, 排查良久, 添加校验字段后发现可以成功校验, 于是想着大不了我全部手动添加字段名校验, 终于, 错误的原因浮现出来了
from.validateFields([n
记住:setFieldsValue的字段要对应得上
解决
antd
的
Form
组件
setFieldsValue的警告
使用
antd
的
Form
组件
setFieldsValue可能会出现You cannot set a
form
field before rendering a field associated with the value.警告,字面意义去看是说在 render之前设置了表单值的
问题
。
在使用setFieldsValue给表单
Form
的某一个filed赋值时,可能掺杂了非表单控件中的字段,
Form
表单在赋值和渲染时发现有些字段无法渲染在现有的字段(因为不存在),所以就会报出这
在
antd
中 有时候 还是会碰见这样得
问题
得,但是
antd
已经帮我们封装好了,
通过
form
表单来控制 各个表单元素 ,当我们想要监控某一个表单的变化的时候 发现不好搞了
最近有个小需求 就是 监听表单中 单选框值得变化 来
触发
一些 效果,这样的话就要求你要知道
每次值发现改变的回调了
在 配置的时候 有一个api方法 可以用来 监控变化 以及变化后的值
on
Values
Change
字段值更新时
触发
回调事件 function(
change
d
Values
, all
Values
)
onFieldsCha
js动态改变input的value 不
触发
on
change
事件解决办法<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<meta http-equiv="Content-Type" content="text/htm
<
Form
.Item label=作用对象>
{getFieldDecorator('targetId', { initialValue: this.state.targetId }, {
rules: [{
required: false,
message: '作用对象'
<Select placeholder=请选择作用对象>
{targetList.map(entity => <Option key={enti
触发
select1,
触发
select2,再
触发
select1,此时select2里面的值变成了上次一选中的value 值,而不会被清空。
解决办法:
使用Select 里面的value属性,来进行清空
<
Form
style={{padding:'20px','boxSizing':'border-box'}}>
<Select defaultValue={packag
在添加的表单中,默认值一般都为空,或者是真假状态的,所以说为
Form
的 initial
Values
属性内的表单项的字段名称对应的值设为空的字符串,或者false默认的radio单选初始值即可。在打开编辑时显示的自然是当前编辑的这项的所有状态,接着还是在 on
Values
Change
中使用一个状态拿到最新的更改后的数据提交编辑即可。编辑时的初始值为当前编辑项,所以直接可直接将当前编辑项的整个对象数据放入initial
Values
属性中当做值即可。all
Values
为整个最新的状态的表单对象。