Доступ к вложенной опоре с помощью redux - PullRequest
0 голосов
/ 06 мая 2020

Я новичок в Redux. Я пытаюсь получить доступ к вложенным данным в моем магазине. Я хотел бы иметь доступ к розничному «названию» и проверять опору как строку с прототипами. Когда я пытаюсь получить доступ к «имени» в рендере, приложение ломается. Есть ли лучший способ сделать это, мы, Redux.

class MyPage extends React.Component {
  componentDidMount() {
    const { id } = this.props;

    this.props.getRetailer(id);
  }

  render() {
    const { retailer } = this.props.retailer;
    const { name } = this.props.retailer && this.props.retailer.retailer;

    return (
      <div>
        <Form
          name={name}
        />
      </div>
    );
  }
}


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

export default connect(mapStateToProps, {
  getRetailer
})(MyPage);

1 Ответ

1 голос
/ 06 мая 2020

Проблема здесь в том, что this.props.retailer && this.props.retailer.retailer; может возвращать null, когда розничный продавец отсутствует, и, следовательно, он попытается разрешить name из null, что вызовет ошибку

Вы можете использовать деструктуризацию с откатом, например

const { retailer } = this.props.retailer || { retailer: {} }; 
const { name } = retailer || {};

Вышеупомянутое будет обрабатывать как случаи, когда this.props.retailer является нулевым или неопределенным, так и this.props.retailer.retailer является нулевым или неопределенным

...