возникла проблема с кодом: «TypeError: Невозможно прочитать« акции »свойства undefined» - PullRequest
0 голосов
/ 26 января 2019

Попробуйте изучить React, но у вас возникнет проблема при использовании «mapStateToProps» выдает ошибку «Ошибка типа: невозможно прочитать свойство« акции »с неопределенным значением»


import PropTypes from "prop-types";

class StockList extends Component {
  componentDidMount() {
    this.props.getStocks();
  }

  render() {
    const { stocks } = this.props.stock;

    return (
      <Container>
        {stocks.map(({ _id, StockCode }) => ({ StockCode }))}
      </Container>
    );
  }
}

StockList.propTypes = {
  getStocks: PropTypes.func.isRequired,
  stock: PropTypes.object.isRequired
};

const mapStateToProps = state => ({
  //defind here
  stock: state.stock
});

export default connect(
  mapStateToProps,
  {
    getStocks
  }
)(StockList);

У меня проблема в этой строке

render() {
    const { stocks } = this.props.stock;

Сказано

TypeError: Cannot read property 'stocks' of undefined

Ответы [ 2 ]

0 голосов
/ 26 января 2019

Способ извлечения акций из реквизита неправильный.

Так что измените

 const { stocks } = this.props.stock;

На

  const { stocks } = this.props;

С вышеуказанным изменением функциональность будет работать, еслиstocks - это всегда массив, в противном случае он не будет работать

Итак, вначале опора запасов будет не определена в лавке приставок

Так что вам нужно сделать условную проверку перед выполнением карты

Изменить

  {stocks.map(({ _id, StockCode }) => ({ StockCode }))}

на

  {Array.isArray(stocks) && stocks.map(({ _id, StockCode }) => ({ StockCode }))}

Приведенное выше условие проверяет, является ли склад массивом только для отображения

или

  {stocks && stocks.map(({ _id, StockCode }) => ({ StockCode }))}
0 голосов
/ 26 января 2019

Ошибка должна исходить из вашего состояния избыточности, откройте инструменты разработчика браузера, перейдите на вкладку приложения, откройте локальное хранилище, проверьте состояния избыточности и подтвердите, есть ли ключ, называемый акции в наличии, если нет запасов, то ошибка вероятно будет из твоего стокового редуктора

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