【React】ant-desgin 请问怎么通过setFieldsValue设置动态增减表单项的值

页面点击编辑按钮,根据后台传过来的keys动态增加表单项,但是无法通过setFieldsValue方式设置初始值,请问应该如何做?

                   {keys.map((k, index) => {

console.log(k);

console.log(`index: ${index}`);

return (

<div className="formSelect relatePaper">

<FormItem>

{getFieldDecorator(`paperId-${k}`, {

initialValue: ''

})(

<Select showSearch style={{width: 200}}

placeholder="请输入试卷名称"

optionFilterProp="children"

filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}

>

<Option value="">--请选择--</Option>

{

!this.props.examPapers ? "" : this.props.examPapers.map(examPaper =>

<Option key={examPaper.id}

value={examPaper.id}>{examPaper.paperName}</Option>)

}

</Select>

)}

</FormItem>

<FormItem >

{getFieldDecorator(`paperDuration-${k}`, {

initialValue: ''

})(

<Select style={{width: 70}}>

<Option value={-1}>不限</Option>

<Option value={5}>5分钟</Option>

</Select>

)}

</FormItem>

<FormItem label="分数线">

{getFieldDecorator(`scoreLine-${k}`, {})(<InputNumber style={{width: 50}}

min={0}/>)}

</FormItem>

<div className="addIcon">

<Button type="ghost" shape="circle" icon="minus"

onClick={() => this.remove(k)}/>

</div>

</div>

);

})

}

【React】ant-desgin 请问怎么通过setFieldsValue设置动态增减表单项的值

回答

我是通过 设置动态的属性名方式实现的 [ "prop_" + (() => 42)() ] 输出:

prop_ 42

setFieldsValue({ ["name"+(()=>变量)()]: 值})

初始值,应该是通过这个字段吧initialValue

你这问题问的我有点晕晕的,首先initialValue属性可以设置初始值,但是首次渲染有效,不是首次就无效了。然后setFieldsValue是可以设置表单的值的。如果你看到页面没有生效,看下键值是不是已经改变了,只是组件没有render.

遇到同样问题,请问是怎么解决的?

请查看博客:https://blog.csdn.net/smk108/... 使用antd form开发支持动态增减表单项,可选有初始值组件的一种实现方式

我也遇到这个问题 请问楼主解决了吗

后来怎么实现的楼主?

以上是 【React】ant-desgin 请问怎么通过setFieldsValue设置动态增减表单项的值 的全部内容, 来源链接: utcz.com/a/77319.html

回到顶部