2

我有以下重组,生命周期 HOC:

import { lifecycle } from 'recompose';

export function myHoc(title) {
    return lifecycle({
        componentDidMount() {
           console.log(title)
        }
    });
}

export default myHoc;

我在我的组件中使用这个 HOC,如下所示:

export default myHoc('x')(PageName);

我想做的是能够使用带有参数的 HOC,如下所示:

export default myHoc({
   param1: "somevalue",
   param2: "somevalue",
   param3: "somevalue",
})(PageName);

然后在 HOC 中,为 param1 和 params 2&3 设置默认值,否则会发生错误。

这可能与重构生命周期有关吗?谢谢

4

1 回答 1

2

您可以在 HOC 函数中使用参数解构。如果您希望代码在未提供所需参数的情况下出错,则可以抛出错误。

export function myHoc({param1 = 'default', param2, param3}) {
    if (!param2) {
      throw new Error('param2 is required');
    }

    if (!param3) {
      throw new Error('param3 is required');
    }

    return lifecycle({
        componentDidMount() {
           console.log(param2);
        }
    });
}
于 2017-12-23T19:12:28.797 回答