Перекомпоновать HOC, не отображая дочерний компонент

Поэтому я надеюсь, что мне не хватает чего-то простого здесь.

Я пытаюсь интегрировать recompose, чтобы я мог переместить несколько функциональных фрагментов кода из моего компонента рендеринга (немого) в свой HOC.

Следующий HOC не отображает дочерний компонент (MainReduxForm). Что мне не хватает?

import { connect } from 'react-redux';
import MainReduxForm from './MainForm';
import { formValueSelector } from 'redux-form';
import { compose, lifecycle } from 'recompose';  

export default () => MainFormContainer => {

const mapState = (state, ownProps) => {
  return {
    test: test
  };
};


const mapDispatch = (dispatch, ownProps) => {
    return {
      onOrderChange: order => dispatch({type: 'FETCH_ORDER', order: order}),
    }
}



 return compose(
  connect(mapState, mapDispatch)
  (MainReduxForm));

ОШИБКА =

Функции недействительны в качестве дочернего элемента React. Это может произойти, если вы возвращаете компонент вместо рендеринга. Или, может быть, вы хотели вызвать эту функцию, а не возвращать ее.


person Shawn Matthews    schedule 30.03.2018    source источник


Ответы (1)


return compose(
  connect(mapState, mapDispatch)
  (MainReduxForm));

Вызов connect() возвращает функцию, которая должна быть вызвана с компонентами. Затем compose должен вызывать то, что от него возвращается.

person Subin Sebastian    schedule 30.03.2018
comment
Спасибо, Субин, к сожалению, дочерний компонент все еще не отображается. Любые другие мысли о том, что я мог пропустить? Я обновил Вопрос в соответствии с вашей рекомендацией, так как это, очевидно, была одна из ошибок. - person Shawn Matthews; 30.03.2018
comment
Также добавлена ​​ошибка из консоли. Извините, я собирался сделать это в первый раз. - person Shawn Matthews; 30.03.2018
comment
Можете ли вы опубликовать весь файл. Похоже, вы экспортируете другую вещь export default () => MainFormContainer => { вместо того, чтобы возвращать расширенный компонент, вы можете попробовать экспортировать его - person Subin Sebastian; 30.03.2018
comment
Спасибо, это было то, что у меня была опечатка в моем экспорте. - person Shawn Matthews; 30.03.2018