我有以下重构,生命周期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,否则会发生错误。
重组生命周期是否可以实现?感谢
答案 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);
}
});
}