【问题标题】:Recompose HOC not displaying child component重构 HOC 不显示子组件
【发布时间】:2018-09-09 02:19:36
【问题描述】:

所以我希望我在这里遗漏了一些简单的东西。

我正在尝试集成 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 子级无效。如果您返回一个组件而不是从渲染中返回,则可能会发生这种情况。或者,也许您打算调用这个函数而不是返回它。

【问题讨论】:

    标签: reactjs redux redux-form recompose


    【解决方案1】:
    return compose(
      connect(mapState, mapDispatch)
      (MainReduxForm));
    

    connect() 调用返回一个函数,该函数应与组件一起调用。然后 compose 应该调用它返回的内容。

    【讨论】:

    • 感谢 Subin,不幸的是它仍然没有渲染子组件。关于我可能遗漏的任何其他想法?我根据您的建议更新了问题,因为这显然是错误之一。
    • 还添加了来自控制台的错误。抱歉是第一次这样做的意思。
    • 你能发布整个文件吗?好像您正在导出不同的东西 export default () => MainFormContainer => { 而不是返回增强组件,您可以尝试导出它
    • export default compose( connect(mapState, mapDispatch) (MainReduxForm));
    • 谢谢,我的导出中有错字。
    猜你喜欢
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    相关资源
    最近更新 更多