Согласно документации , вы не должны использовать value
или defaultValue
с getFieldDecorator
.
После переноса getFieldDecorator, значением (или другим определенным свойствомby valuePropName) onChange (или другое свойство, определенное триггером), реквизиты будут добавлены к элементам управления формы , поток данных формы будет обрабатываться формой, что приведет к:
Вы не должныиспользуйте onChange для сбора данных, но вы все равно можете прослушивать события onChange (и т. д.).
Вы не можете установить значение элемента управления формы через значение defaultValue prop, и выследует установить значение по умолчанию с initialValue в getFieldDecorator вместо .
Вы не должны вызывать 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>
)}
Вы можете проверить рабочую демонстрацию на codesandbox.io .