Да, проверка вложенного объекта возвращает ошибку (объекты недействительны в качестве дочернего элемента React)

Это моя форма Formik, которую я хочу проверить с помощью yup.

{
  "images": [],
  "fundingGoal": 1337,
  "name": {
    "en": "english name",
    "fr": "french name"
  },
  "description": {
    "en": "english project desc",
    "fr": "french project desc"
  },
  "country": "Anguilla",
  "city": "city",
  "address": "address",
  "location": "",
  "socialMedia": "facebook",
  "contact": "contact",
  "currency": "USD",
  "sdgs": [
    "NO_POVERTY"
  ]
}

Моя текущая схема yup:

const ProjectInputSchema = yup.object().shape({
    id: yup.string(),
    name: yup.object().shape({
        en: yup.string().required(),
        fr: yup.string()
    }),
    description: yup.object(),
    images: yup.array(),
    ...
});

Как я визуализирую свою форму с объектом name:

<Form.Group as={Col} md={{span: 5}} controlId="projectName">
    <Form.Label>
        {t('projectName')}
    </Form.Label>
    {
        <Form.Control
            type="text"
            name="name.en"
            value={(values['name'] as I18n).en}
            onChange={handleChange}
        />
    }
    ...

Как только я ввожу символ в name или description, я получаю следующую ошибку консоли:

Неперехваченная (в промисе) Ошибка: объекты недействительны в качестве дочерних элементов React (найдено: объект с ключами {fr}). Если вы хотели отобразить коллекцию дочерних элементов, используйте вместо этого массив.

Я следовал примеру реализации (https://codesandbox.io/s/y7q2v45xqx) для вложенного объекта, но Я не вижу разницы.


person mrks    schedule 08.12.2019    source источник
comment
В вашем рендере вы можете пытаться напрямую визуализировать некоторые объекты/массив. Проверьте свою функцию рендеринга один раз. Это может помочь   -  person Sunil Chaudhary    schedule 08.12.2019
comment
Я визуализирую его напрямую с помощью <Form.Control type="text" name="name.en" value={(values['name'] as I18n).en}/>, и я получаю сообщение об ошибке только тогда, когда добавляю проверку @Sunil.   -  person mrks    schedule 08.12.2019
comment
Не уверен, что происходит. Сможете ли вы отобразить форму, если жестко закодируете все значения? или Можете ли вы попытаться воспроизвести проблему в какой-нибудь песочнице (просто скопируйте код в той же песочнице, о которой вы упомянули, с жестко заданными значениями)? или разместить полный компонент здесь. Это может помочь быстро отладить   -  person Sunil Chaudhary    schedule 08.12.2019
comment
Выдает совершенно нормально. Я получаю ошибку только тогда, когда добавляю свою схему проверки и начинаю вводить, например, поле name. Без схемы мои значения формы выглядят так, как я ожидаю. Я постараюсь создать песочницу для этого.   -  person mrks    schedule 08.12.2019
comment
@mrks ты решил это?   -  person Dipesh KC    schedule 31.05.2020