Я создавал форму с формой реакции-окончания. В этой форме есть несколько условных полей, которые отображаются только тогда, когда пользователь устанавливает флажок. Если флажок установлен, компонент визуализируется.
Это очень похоже на пример, который они предоставляют в документации, которую вы можете увидеть здесь. https://codesandbox.io/s/kx8qv67nk5
Я основываюсь на этом примере и могу добавить в массив полей кнопку, которая вызывает метод push, точно так же, как в примере.
То, что я хотел бы сделать, - это не нажимать кнопку, чтобы вставить этот объект в массив, а скорее, чтобы массив по умолчанию уже включал один объект внутри.
другими словами,
В представленном примере массив начинается пустым, и вы нажимаете() в массив, поля, которые определены в нем.
Как я могу сделать так, чтобы он по умолчанию уже имел один объект по умолчанию вместо того, чтобы вручную нажимать его?
Я не уверен, где этот массив определяется или инициализируется.
Вы можете использовать "initialValues"
Пример :
import { Form } from "react-final-form";
...
myInitData = {
firstName: "hello",
lastName: "world"
}
...
render() {
return
<Form
initialValues = {myInitData}
onSubmit = {this.handleSubmit}
validate = {this.validate}
>...
Loick M близок, но для массива вам понадобится:
<Form
onSubmit = {myOnSubmit}
initialValues = {{ musicians: [ { firstName: 'Bob', lastName: 'Marley' } ] }}>
...
</Form>
@xunux, вероятно, вы уже поняли это, но вам нужно определить начальные значения в состоянии компонента. Здесь вы можете найти ответ на похожий вопрос: stackoverflow.com/a/56455546/1251563
эй, Эрик, это определенно сделало то, что я искал, однако, похоже, у него есть побочный эффект. Если я добавлю ключ: array[] к своим начальным значениям и изменю состояние своего компонента, имеющего форму, по какой-то причине он сбрасывает всю форму! любая идея, почему это может быть? это сводит меня с ума