反应| 蚂蚁设计选择默认值

Sel*_*vin 5 javascript reactjs antd

我在项目中使用蚂蚁设计

在这里,我有一个选择作为动态字段。当我尝试为select设置默认值时。没用

<Select defaultValue="lucy">
  <Option value="jack">Jack</Option>
  <Option value="lucy">Lucy</Option>
  <Option value="Yiminghe">yiminghe</Option>
</Select>
Run Code Online (Sandbox Code Playgroud)

我将defaultvalue设置为,lucy但不起作用

复制代码:https : //codesandbox.io/s/6x3qv6wymr

Tri*_*ani 17

根据文档,您不应将valuedefaultValue与一起使用getFieldDecorator

在由getFieldDecorator包装之后,值(或由valuePropName定义的其他属性)onChange(或由触发器定义的其他属性)道具将添加到表单控件中?表单数据流将由Form处理,这将导致:

  1. 您不应该使用onChange来收集数据,但是您仍然可以侦听onChange(等等)事件。

  2. 您不能通过值defaultValue属性设置表单控件的值,而应在getFieldDecorator中使用initialValue设置默认值

  3. 您不应该手动调用setState,请使用this.props.form.setFieldsValue以编程方式更改值。

因此,在您的代码中,您需要定义initialValue而不是defaultValue如下所示:

{getFieldDecorator(`names[${k}]`, {
        validateTrigger: ["onChange", "onBlur"],
        initialValue: "lucy",
        rules: [
          {
            required: true,
            whitespace: true,
            message: "Please input passenger's name or delete this field."
          }
        ]
      })(
        <Select>
          <Option value="jack">Jack</Option>
          <Option value="lucy">Lucy</Option>
          <Option value="Yiminghe">yiminghe</Option>
        </Select>
      )}
Run Code Online (Sandbox Code Playgroud)

您可以在codeandbox.io上查看正在运行的演示。