1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > antd form表单默认值

antd form表单默认值

时间:2023-05-11 23:22:31

相关推荐

antd form表单默认值

使用场景:

编辑商品信息,编辑页面要带入商品的名称等信息

开始使用usestate和useEffect结果不行,会不停刷接口,或者usestate里面的值不更新,用的初始值,而不是接口返回值

以下是antd的官方表述表单 Form - Ant Design

你不能用控件的valuedefaultValue等属性来设置表单域的值,默认值可以用 Form 里的initialValues来设置。注意initialValues不能被setState动态更新,你需要用setFieldsValue来更新。

你不应该用setState,可以使用form.setFieldsValue来动态改变表单值。

正确操作

//创建一个引用const formRef = React.createRef()//对引用赋值productName和productId是表单的name名称function Edit(props) {useEffect(()=>{if(props.match.params.id){getOneById(props.match.params.id).then(res=>{console.log(res.data.content.productName)formRef.current.setFieldsValue({productName: res.data.content.productName,productId:res.data.content.productId})})}},[]) }//在表单中关联这个引用formRef<Form ref={formRef} name="nest-messages" onFinish={onFinish}onFinishFailed={onFinishFailed}>{/* 此处与视频讲解不一样antd4已更新*/}<Form.Item label="名字" rules={[{required:true ,message: 'name is required'},{warningOnly: true}]} name="productName" ><Input placeholder="请输入商品名字" /></Form.Item><Form.Item label="价格" rules={[{required:true,message: 'price is required'},{warningOnly: true},{validator:PriceValidate}]} name="productId"><Input placeholder="商品价格" /></Form.Item><Form.Item><Button htmlType="submit " type="primary">保存</Button></Form.Item></Form>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。