Библиотека тестирования React: объекты недействительны как дочерние объекты React - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь написать тест с помощью шутки, и у меня возникает эта ошибка

Objects are not valid as a React child (found: [object Promise]). If you meant to render a collection of children, use an array instead.
        in td (created by TableCell)
        in TableCell (created by DataTable)
        in tr (created by TableExpandRow)
        in TableExpandRow (created by DataTable)
        in tbody (created by TableBody)
        in TableBody (created by DataTable)
        in table (created by Table)
        in Table (created by DataTable)
        in div (created by DataTable)
        in div (created by TableContainer)
        in TableContainer (created by DataTable)
        in div (created by DataTable)
        in DataTable
        in Unknown
        in Unknown (created by EnhancedDataTable)
        in EnhancedDataTable (created by MyPage)
        in div (created by MyPage)
        in MyPage


  27 | 
  28 |     it('renders', () => {
> 29 |         const { container } = render(<MyPage />);

MyPage - это функциональный компонент, который возвращает

<React.Fragment>
    <MyHeader title={'Page Header'} />
    <div className="page-content">
        <EnhancedDataTable
            actions={actions}
            rowActions={rowActions}
            headers={rowHeaders}
            rowDetail={rowDetail}
            rows={rowsData}
            className='my-table'
        />
    </div>
</React.Fragment>

Что мне здесь не хватает?

1 Ответ

1 голос
/ 09 июля 2020

Вы пытаетесь отобразить объект (обещание) как дочерний. Из вашего кода трудно понять, где, но, предполагая, что ваша таблица работает как таблица r c -components, это может быть примерно так:

Допустим, у меня есть массив и я хочу отобразить его в таблица

const arr = [
  {
    company: 'XYZ',
    owner: {
      name: 'Julius'
    }
  }
]

Теперь я хочу отобразить ее в таблице со столбцами: | компания | owner |, поэтому я создаю массив заголовков:

const arr = [
  {
    dataIndex: 'company'
  },
  {
    dataIndex: 'owner'
  }
]

Теперь это не сработает, потому что моя таблица будет пытаться отобразить объект {name: 'Julius'}, а объекты недействительны как реагирующие дочерние элементы.

Исправление изменило бы мои заголовки на что-то вроде:

const arr = [
  {
    dataIndex: 'company'
  },
  {
    dataIndex: ['owner', 'name']
  }
]

Теперь это должно работать, потому что столбец будет row['owner']['name'], строка.

Без дополнительного кода, трудно точно сказать, в чем проблема, но, надеюсь, этот пример дал вам представление о том, что означает реакция с этой ошибкой. все, что я знаю, это то, что ошибка находится где-то в ячейках вашей таблицы, поскольку стек показывает in Unknown (created by EnhancedDataTable), а последний (или первый, я полагаю) элемент - td, общий элемент для данных таблицы.

...