React Native - нарушение инварианта Объекты недопустимы в качестве дочернего элемента реагирования - PullRequest
1 голос
/ 09 января 2020

Я пытаюсь назвать свою функцию другим компонентом, но у меня есть это сообщение:

Инвариантное нарушение: объекты недопустимы как дочерний элемент React (найдено: объект с ключами {годы, месяцы, дни) })

Моя функция age:

export const age = date => {
  const result = { years: 0, months: 0, days: 0 };
  const now = new Date();
  let age = parseISO(date);
  const years = differenceInYears(now, age);
  if (years > 0) {
    result.years = years;
    age = addYears(age, years);
  }
  const months = differenceInMonths(now, age);
  if (months > 0) {
    result.months = months;
    age = addMonths(age, months);
  }
  const days = differenceInDays(now, age);
  if (days > 0) {
    result.days = days;
  }
  return result;
};

Что не возможно вызвать эту функцию? Вот так:

<Caption>
  {age(//key)}
</Caption> 

1 Ответ

3 голосов
/ 09 января 2020

Ваша функция может возвращать только строку, вы возвращаете объект. React не знает, как его отобразить.

Вероятно, вам следует сделать следующее:

export const age = date => {
  const result = { years: 0, months: 0, days: 0 };
  const now = new Date();
  let age = parseISO(date);
  const years = differenceInYears(now, age);
  if (years > 0) {
    result.years = years;
    age = addYears(age, years);
  }
  const months = differenceInMonths(now, age);
  if (months > 0) {
    result.months = months;
    age = addMonths(age, months);
  }
  const days = differenceInDays(now, age);
  if (days > 0) {
    result.days = days;
  }
return `${result.years} years ${result.months} ${result.days}`
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...