我有一个像这样的HOC
import React, {useEffect, useMemo, useState} from 'react'
interface WindowSize {
width: number,
height: number
}
export function WithWindowSize <T>(Component: React.ComponentType<T>) {
return function WithComponent(props: T) {
const [windowSize, setWindowSize] = useState({} as WindowSize)
useEffect(() => {
...
}, [])
return <Component
{...props}
windowSize={windowSize}/>
}
}
export default WithWindowSize;
现在我想使用这个HOC
。
interface FooProps {
headline: string,
value: string | number,
}
const Foo = ({headline, value, windowSize}: FoooProps & WindowSize) => {
return ...
}
export default WithWindowSize(Foo);
这给了我
类型“FooProps & WindowsSize”上不存在属性“windowSize”。
如何将prop类型WindowSize
注入到Foo
中?我认为最好的方法是在HOC
中进行,这样我就不必每次使用WithWindowSize
Package 东西时都进行此操作。
1条答案
按热度按时间nnt7mjpx1#
我只想将
windowSize
作为可选属性包含在FooProps
接口中,因为Foo
(或任何其他组件)无法知道它将在HOC中使用