我正在使用react-lazyLoad,并且传递了一些道具,如下所示。该库已经导出了道具类型 LazyLoadProps 。通过时不起作用。
我还添加了手动类型(testProps),它没有用。
import React from 'react';
import LazyLoad, { LazyLoadProps } from 'react-lazyload';
import { isUserAgentMobile } from '@lib/helpers';
import { Props } from './types';
// type testProps = {
// height?: number;
// offset?: number;
// once?: boolean;
// };
const Me = (props: Props): JSX.Element => {
const LazyLoadOnMobile = props.isMobile ? LazyLoad : React.Fragment;
const lazyLoadProps: LazyLoadProps = props.isMobile ? { height: 0, offset: 5000, once: true } : {};
return (
<LazyLoadOnMobile {...lazyLoadProps}> //error happens here!
hi
</LazyLoadOnMobile>
);
};
这是错误消息:
TS2740:键入'{children:Element [];一次?:布尔|未定义高度?编号|未定义偏移量::数字|数字[] |未定义溢出?:布尔值|未定义调整大小?未定义...还有7个...; classNamePrefix ?:字符串|未定义}”缺少类型“ LazyLoad”中的以下属性:context,setState,forceUpdate,render和另外3个。
我的问题是:
const LazyLoadOnMobile: typeof LazyLoad | React.ExoticComponent<{children?: React.ReactNode}>
)?