Создать и установить поле формы antd одновременно - PullRequest
0 голосов
/ 28 февраля 2020

Я использую 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., и она не устанавливает поле. Вы должны нажать кнопку еще раз, чтобы установить значение поля. Вы можете увидеть это поведение ниже:

Behavior Gif

Мне было интересно, есть ли строка, которую я мог бы запустить, чтобы отобразить поле, прежде чем пытаться установить значение , Что-то вроде form.render() было бы неплохо, но, увы, это недопустимый метод формы antd. Смотрите коды и поле ниже:

Edit young-frog-4dnh2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...