如何使用重构,生命周期HOC设置defaultParams?

时间:2017-12-23 17:10:37

标签: javascript reactjs recompose

我有以下重构,生命周期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设置默认值,并且需要参数2和3,否则会发生错误。

重组生命周期是否可以实现?感谢

1 个答案:

答案 0 :(得分: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);
        }
    });
}