代码之家  ›  专栏  ›  技术社区  ›  AnnaSm

如何通过重新组合、lifecycle HOC设置defaultParams?

  •  2
  • AnnaSm  · 技术社区  · 8 年前

    我有以下重新组合,lifecycle 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,否则会发生错误。

    重组生命周期是否可能实现这一点?谢谢

    1 回复  |  直到 8 年前
        1
  •  2
  •   brub    8 年前

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