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

How to set defaultParams with a recompose, lifecycle HOC?

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

重组生命周期是否可行?谢谢

您可以在 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);
        }
    });
}