我正在使用重组库和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方法中的所有订阅和异步任务。
有没有办法做到这一点?如果这看起来正确,那我在做什么错了?
答案 0 :(得分:1)