Я использую antd в качестве библиотеки реагирующих компонентов для создания динамической формы c для создаваемого веб-приложения. Я использую элемент формы Dynami c из документации формы antd здесь .
По сути, я хочу создать новый экземпляр <Form.item>
и в то же время установить значение <Form.item>
. Я создал функцию, которая выглядит следующим образом:
createAndSetField= () => {
const { form } = this.props
form.setFieldsValue({ keys: [0] })
form.setFieldsValue({ "names[0]": "The Data"})
}
По сути, здесь происходит то, что keys
определяет каждый элемент формы, поэтому установка keys: [0]
определяет один элемент формы с индексом 0
. Каждый элемент формы имеет декоратор поля names[index]
, где индекс - это индекс, указанный keys
. Поэтому form.setFieldsValue({ "names[0]": "The Data"})
должен установить значение первого поля на «Данные».
Однако, когда я пытаюсь запустить эту функцию (которую я подключил к кнопке Create field and populate data
), я получаю ошибку: Warning: You cannot set a form field before rendering a field associated with the value.
, и она не устанавливает поле. Вы должны нажать кнопку еще раз, чтобы установить значение поля. Вы можете увидеть это поведение ниже:
Мне было интересно, есть ли строка, которую я мог бы запустить, чтобы отобразить поле, прежде чем пытаться установить значение , Что-то вроде form.render()
было бы неплохо, но, увы, это недопустимый метод формы antd. Смотрите коды и поле ниже: