我正在使用 React.FC 打字稿構建一些組件,今天我在嘗試使用樣式組件中的withThemeHOC注入樣式組件道具時發(fā)現了這個打字稿錯誤:似乎withThemeHOC 只接受React.ComponentType作為參數,但組件是使用React.FC(Functional Component)構建的。有沒有辦法投射React.FC到React.ComponentType?更新完整的組件實現:import React, { useEffect } from 'react'import PropTypes from 'prop-types'import { Reset, LoadingBarStyled, SpinnerContainer } from './Style'import { withTheme } from 'styled-components'import ScaleLoader from 'react-spinners/ScaleLoader'export interface ILoadingBarComponent { progress: number appearance?: string onFinish(finished: Promise<string>): void}const LoadingBarComponent: React.FC<ILoadingBarComponent> = ({ progress = 0, appearance = 'default', onFinish}) => { useEffect(() => { if (progress >= 100 && onFinish) { onFinish( new Promise((resolve, reject) => { setTimeout(() => { resolve('finished') }, 800) }) ) } }, [progress, onFinish]) return ( <div className="loading-bar-component-module"> <Reset /> {progress > -1 && progress < 101 && ( <> <LoadingBarStyled progress={progress} appearance={appearance} /> <SpinnerContainer progress={progress}> <ScaleLoader height={10} /> </SpinnerContainer> </> )} </div> )}LoadingBarComponent.propTypes = { progress: PropTypes.number.isRequired, appearance: PropTypes.string, onFinish: PropTypes.func.isRequired}export default withTheme(LoadingBarComponent)
帶有主題 HOC 的樣式組件不適用于 React.FC 類型
狐的傳說
2021-12-02 16:00:34