Ошибка типа: Не удается прочитать свойства неопределенного (чтение «карты») в react

#javascript #reactjs

#язык JavaScript #реагирует на

Вопрос:

Я получаю эту ошибку, когда пытаюсь запустить свой код:

Ошибка типа: Не удается прочитать свойства неопределенного (чтение «карты»)

Вот мой код:

 import React, { Component } from "react"; import _ from "lodash";  class TableBody extends React.Component {  render() {  const { data, columns } = this.props;  return (  lt;tbodygt;  {data.map((item) =gt; (  lt;trgt;  {columns.map((column) =gt; (  lt;tdgt;{_.get(item, column.path)}lt;/tdgt;  ))}  lt;/trgt;  ))}  lt;/tbodygt;  );  } }  export default TableBody;  

Комментарии:

1. Кажется, или data то, или другое, или columns не определено.

2. Как вы используете свой компонент TableBody? Вы установили там столбцы для чего-нибудь? Кроме того, попробуйте переместить const .. = this.props перед функцией рендеринга. Это то, что я всегда делаю, хотя не уверен, что в этом проблема

3. можете ли вы также добавить значение данных и столбцов?

4. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Ответ №1:

если данные являются чем-то, что поступает из удаленного запроса, они не определены при первом отображении, пока не придет ответ. Или, может быть, вы выполняете какие-то вычисления в родительском компоненте, в котором данные не определены, когда компонент получает визуализацию. Вы можете написать свой код следующим образом:

 const { data = [], columns = [] } = this.props;  

Которые устанавливают значения в пустой массив, если они не определены.

Однако убедитесь, что вы передаете массив, а не что-то другое.