仅在道具中满足特定条件时添加HoC

时间:2018-07-12 19:14:07

标签: reactjs higher-order-components recompose

我正在使用重组库和HoC来传递用于我的组件的一堆道具。我想知道在compose中是否可以在设置HoC之前检查道具。例如,说我有这样的东西:

export default compose(
  withProps(props => ({
    shouldUseWithMyHoc: someCondition() // true or false
  })),
  withState('someState', 'setSomeState', ''),
  withHandlers({
    doStuff: props => evt => {
      // do stuff
    }
  }),
  withMyHoc() // should only use if `shouldUseWithMyHoc` prop is true
)(MyComponent)

我该怎么做才能仅在withMyHoc设置为shouldUseWithMyHoc时使用true

我考虑过要进行三元分析,但是进展不顺利,当条件为假时,我也没有任何后援。看起来像这样:

  export default compose (
  ...
  (props) => {(
    props.shouldUseWithMyHoc
    ? withMyHoc()
    : null)}
  )(MyComponent)

通过使用三进制,出现以下错误:

  

警告:无法在已卸载的组件上调用setState(或forceUpdate)。这是空操作,但它表明应用程序中发生内存泄漏。要修复此问题,请取消componentWillUnmount方法中的所有订阅和异步任务。

有没有办法做到这一点?如果这看起来正确,那我在做什么错了?

1 个答案:

答案 0 :(得分:1)

结果证明,我只需要在Google上更好地表达我的问题即可。 branch的{​​{1}} HoC按照here

的规定解决了我的问题

对于我的组件,当我完成应用分支时,它是这样的:

recompose