#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;
Которые устанавливают значения в пустой массив, если они не определены.
Однако убедитесь, что вы передаете массив, а не что-то другое.