Как установить начальное значение/значение по умолчанию для массива, используемого <FieldArray/>?

Я создавал форму с формой реакции-окончания. В этой форме есть несколько условных полей, которые отображаются только тогда, когда пользователь устанавливает флажок. Если флажок установлен, компонент визуализируется.

Это очень похоже на пример, который они предоставляют в документации, которую вы можете увидеть здесь. https://codesandbox.io/s/kx8qv67nk5

Я основываюсь на этом примере и могу добавить в массив полей кнопку, которая вызывает метод push, точно так же, как в примере.

То, что я хотел бы сделать, - это не нажимать кнопку, чтобы вставить этот объект в массив, а скорее, чтобы массив по умолчанию уже включал один объект внутри.

другими словами,

В представленном примере массив начинается пустым, и вы нажимаете() в массив, поля, которые определены в нем.

Как я могу сделать так, чтобы он по умолчанию уже имел один объект по умолчанию вместо того, чтобы вручную нажимать его?

Я не уверен, где этот массив определяется или инициализируется.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
2 974
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете использовать "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> 

эй, Эрик, это определенно сделало то, что я искал, однако, похоже, у него есть побочный эффект. Если я добавлю ключ: array[] к своим начальным значениям и изменю состояние своего компонента, имеющего форму, по какой-то причине он сбрасывает всю форму! любая идея, почему это может быть? это сводит меня с ума

xunux 05.06.2019 02:50

@xunux, вероятно, вы уже поняли это, но вам нужно определить начальные значения в состоянии компонента. Здесь вы можете найти ответ на похожий вопрос: stackoverflow.com/a/56455546/1251563

breq 30.05.2020 16:31

Другие вопросы по теме