Предупреждение: Неудачный тип пропеллера: опора `ведет` помечена как обязательная в` Ведущих`, но ее значение равно `undefined` - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь использовать этот учебник для отображения информации в моей таблице, используя React и Redux, но я продолжаю получать эту ошибку:

Предупреждение: сбойный тип проп: проп leads помечен как требуется в Leads, но его значение равно undefined Uncaught Type Error: Невозможно прочитать свойство 'map' из неопределенных потенциальных клиентов. js: 52

Мой код:

import React, { Component, Fragment } from "react";
import { connect } from "react-redux";
import PropTypes from "prop-types";
import { getLeads } from "../../actions/leads";

export class Leads extends Component {

  static propTypes = {
    leads: PropTypes.array.isRequired,
  };

  componentDidMount() {
    this.props.getLeads();
  }

  render() {
    return (
      <Fragment>
        <h2>Leads</h2>
        <table className="table table-striped">
          <thead>
            <tr>
              <th>ID</th>
              <th>Name</th>
              <th>Email</th>
              <th>Message</th>
              <th />
            </tr>
          </thead>
          <tbody>
            {this.props.leads.map(lead => (
              <tr key={lead.id}>
                <td>{lead.id}</td>
                <td>{lead.name}</td>
                <td>{lead.email}</td>
                <td>{lead.message}</td>
                <td><button className="btn btn-danger btn-sm">Delete</button></td>
              </tr>
            ))}
          </tbody>
        </table>
      </Fragment>
    );
  }
}

const mapStateToProps = state => ({
  leads: state.leads.leads
});

export default connect(
  mapStateToProps,
  { getLeads }
)(Leads); 

Что я делаю не так?

Ответы [ 3 ]

0 голосов
/ 17 февраля 2020

Проблема с

static propTypes = {
    leads: PropTypes.array.isRequired,
};

Вы пометили это как обязательное значение, которое будет передаваться при использовании Leads компонента.

Поэтому вы должны использовать вот так

<Leads lead={[]} />

и пустой массив или некоторые данные, которые вы должны предоставить этому компоненту.

0 голосов
/ 17 февраля 2020

Проблема в том, что вам потребовались отводы опоры

static propTypes = {
    leads: PropTypes.array.isRequired,
};

Вы должны пропустить опору, когда она называется так:

<Leads lead={[]} />

или изменить stati c propTypes на удаление isRequired как так

 static propTypes = {
        leads: PropTypes.array,
    };
0 голосов
/ 17 февраля 2020

проблема не в этом компоненте Leads, а в родительском компоненте, который использовал Leads.

необходимо добавить реквизиты, называемые потенциальными клиентами, с форматом массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...