Reactjs 使用高阶组件对静态进行反应
我正在尝试将我的项目从JavaScript移植到TypeScript。我有一个高阶的高阶组件,名为Reactjs 使用高阶组件对静态进行反应,reactjs,typescript,higher-order-components,Reactjs,Typescript,Higher Order Components,我正在尝试将我的项目从JavaScript移植到TypeScript。我有一个高阶的高阶组件,名为highstatics,它可以接收HOC并提升包装组件的静态 import hoistNonReactStatics from 'hoist-non-react-statics'; export const hoistStatics = higherOrderComponent => BaseComponent => { const NewComponent = higherOrd
highstatics
,它可以接收HOC并提升包装组件的静态
import hoistNonReactStatics from 'hoist-non-react-statics';
export const hoistStatics = higherOrderComponent => BaseComponent => {
const NewComponent = higherOrderComponent(BaseComponent);
hoistNonReactStatics(NewComponent, BaseComponent);
return NewComponent;
};
我的问题是,我不知道怎么打这个。是否有方法键入通用的高阶组件?在这种情况下,我需要如何处理道具?您需要键入HOC,然后使用它来键入hooc
import hoistNonReactStatics from 'hoist-non-react-statics';
type HOC<InnerProps, OuterProps = InnerProps> = (
Component: React.ComponentType<InnerProps>,
) => React.ComponentType<OuterProps>;
const hoistStatics = <InnerProps, OuterProps>(
higherOrderComponent: HOC<InnerProps, OuterProps>,
): HOC<InnerProps, OuterProps> => (
BaseComponent: React.ComponentType<InnerProps>,
) => {
const NewComponent = higherOrderComponent(BaseComponent);
hoistNonReactStatics(NewComponent, BaseComponent);
return NewComponent;
};
export default hoistStatics;
从“提升机非反应静力学”导入提升机非反应静力学;
类型HOC=(
组件:React.ComponentType,
)=>React.ComponentType;
常数静力学=(
高级命令组件:HOC,
):HOC=>(
BaseComponent:React.ComponentType,
) => {
const NewComponent=高级有序组件(BaseComponent);
提升机非反应器(新组件、基本组件);
返回新组件;
};
导出默认静态数据;
您需要键入HOC,然后使用它来键入HOHOC
import hoistNonReactStatics from 'hoist-non-react-statics';
type HOC<InnerProps, OuterProps = InnerProps> = (
Component: React.ComponentType<InnerProps>,
) => React.ComponentType<OuterProps>;
const hoistStatics = <InnerProps, OuterProps>(
higherOrderComponent: HOC<InnerProps, OuterProps>,
): HOC<InnerProps, OuterProps> => (
BaseComponent: React.ComponentType<InnerProps>,
) => {
const NewComponent = higherOrderComponent(BaseComponent);
hoistNonReactStatics(NewComponent, BaseComponent);
return NewComponent;
};
export default hoistStatics;
从“提升机非反应静力学”导入提升机非反应静力学;
类型HOC=(
组件:React.ComponentType,
)=>React.ComponentType;
常数静力学=(
高级命令组件:HOC,
):HOC=>(
BaseComponent:React.ComponentType,
) => {
const NewComponent=高级有序组件(BaseComponent);
提升机非反应器(新组件、基本组件);
返回新组件;
};
导出默认静态数据;