Компонент высшего порядка не может видеть реквизит - PullRequest
0 голосов
/ 21 февраля 2019

Я использую реагирую с реактивно-нативной и редуксной.Ошибка приходит к компоненту из магазина приставок.После этого я получил: ничего не было возвращено из рендера.Обычно это означает, что отсутствует инструкция возврата.Или, чтобы ничего не отобразить, верните null.

Что с этим не так?почему hoc не видит реквизит?

Мой компонент:

import React, { Component } from 'react';
import withHandleError from './withHandleError';

class SendScreen extends Component {

  render() {
    const { error } = this.props;
    return (
    <div> Test </div>
    )
  }
};

const mapStateToProps = ({ppm}) => ({
  error: ppm.error
})


export default withHandleError(connect(mapStateToProps)(SendScreen));

И HoC:

import React, { Component } from 'react';
import { ErrorScreen } from '../../ErrorScreen';
import { View } from 'react-native';

export default Cmp => {
  return class extends Component {
    render() {
      const {error, ...rest } = this.props;
      console.log(error)  //// undefined....
      if (error) {
        return <ErrorScreen />
      }

      return <Cmp { ...rest } />
    }
  }
}

1 Ответ

0 голосов
/ 21 февраля 2019

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

import React, { Component } from 'react';
import withHandleError from './withHandleError';

class SendScreen extends Component {

  render() {
    const { error } = this.props;
    return (
    <div> Test </div>
    )
  }
};

const mapStateToProps = ({ppm}) => ({
  error: ppm.error
})


export default connect(mapStateToProps)(withHandleError(SendScreen));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...