React-类型IntrinsicAttributes上不存在属性

时间:2019-08-23 06:09:47

标签: reactjs typescript

我是React的新手,看到了这个错误,我无法解决:

Property classes does not exist on type IntrinsicAttributes

我有以下代码:

class SeriesView extends React.Component<Props> {
    render() {

        return (
            <SeriesDetail classes={this.props.classes} />
        )
    }
}

SeriesDetail被声明为:

const SeriesDetail: React.FC<{}> = () => {
    //This just gets some payload
    const service = useGetSeriesService();

    if (service.status === 'loading') {
        return <div>Loading...</div>
    } else if (service.status === 'loaded') {
        const seriesData = service.payload[0]
        return (
            <div>
                <h1 className=""> 
                    {seriesData.description}
                </h1>
            </div>
            );

    } else if (service.status === 'error') {
        return <div>Oops!</div>
    } else {
        return <div></div>
    }

};

因此,在className=""点,我希望能够传递classes.clearStyle中设置的类似props的内容。

关于如何执行此操作的任何想法?

此外,作为React的新手,如果还有其他建议,我将非常感谢任何指导。

谢谢。

1 个答案:

答案 0 :(得分:2)

如果要在带有打字稿的React组件上使用“自定义道具”,则需要在道具类型中定义它们:

interface SeriesDetailProps {
  classes: {
    clearStyle: string;
  };
}

const SeriesDetail: React.FC<SeriesDetailProps> = (props) => {
 // ...
}

只有这样,您才能通过这些道具并进行正确的类型检查。看来您已经为Props组件定义了SeriesView,所以我想您可以为SeriesDetail组件修改它们。