蚂蚁设计表单initialValue如何使用

Posted

技术标签:

【中文标题】蚂蚁设计表单initialValue如何使用【英文标题】:how to use ant design form initialValue 【发布时间】:2020-09-03 18:01:14 【问题描述】:

使用antd表单initialValue哪个对?

我想知道antd表单initialValue是用来设置初始数据还是只是在表单没有值时显示值。

const Component = ( id ) => 
  const initialName = 'John'
  const  data  = useQuery(GET_NAME,  variables:  id  )
  if (data)  
    initialName = data.name 
  

  return (
  <Form.Item>
    form.getFieldDecorator('name',  initialValue: initialName )(<Input />)
   </Form.Item>
 )


const Component = ( id ) => 
  const  data  = useQuery(GET_NAME, 
    variables:  id ,
    onCompleted: res =>  form.setFieldsValue( name: res.data.name ) 
  )

  return (
  <Form.Item>
    form.getFieldDecorator('name',  initialValue: 'John' )(<Input />)
   </Form.Item>
 )

【问题讨论】:

对于在搜索动态 initialValues 时遇到此问题的任何人:检查 this。 【参考方案1】:

您应该使用 Form 组件包装您的表单项,并将初始值添加到 Form 而不是 Form.Item。

例如:


<Form
      initialValues= username:'default value' 
      onFinish=onFinish
      onFinishFailed=onFinishFailed
    >
      <Form.Item
        label="Username"
        name="username"
        rules=[ required: true, message: 'Please input your username!' ]
      >
        <Input />
      </Form.Item>
    </Form>

【讨论】:

【参考方案2】:

对我来说,如果 initialValues 是一个在表单加载时已经存在的对象,那么设置它是有效的,让我们坐下来它是“静态的”。但是,当异步获取该对象时(使用useEffect 钩子),initialValues 甚至在表单项上设置initialValue 似乎都不起作用。有什么想法吗?

【讨论】:

请将您的问题发布为问题,而不是答案!无论如何,我认为this 回答了你的问题。每次初始值更改时,您都应该调用setFieldValues【参考方案3】:

是的,文档很清楚。我犯了一个错误。我在getFieldDecorator 中使用了initialValues(复数)而不是initialValue

另外,请确保您使用的版本是 Ant 3.X 在 getFieldDecorator 中初始化它们的值,或者如果您使用的是 4.X 版本,请使用 initialValues 作为 Form 的属性。

【讨论】:

【参考方案4】:

它会将值设置为您分配的 initialValue,所以第一种方法是正确的

你可以在这里查看https://ant.design/components/form/#API

【讨论】:

【参考方案5】:

在 useEffect 中使用“setFieldsValue”效果惊人!

useEffect(() => 
    props.form.setFieldsValue(
        someFormField: formCalculatedValue,
    );        
, [someDependencies]);

【讨论】:

以上是关于蚂蚁设计表单initialValue如何使用的主要内容,如果未能解决你的问题,请参考以下文章

如何使组件在表单设计器中消失?

react使用getFieldDecorator表单默认值initialValue默认值回显问题

使用 initialValues 属性将本地存储值持久化到 redux 表单字段中

如何使用Yup根据条件设置验证架构?格式

如何使用剧作家或柏树选择蚂蚁设计选择选项

颤振-'initialValue == null ||控制器 == null': 不正确。表单小部件中的错误