我正在使用React on Rails | Webpackaer |打字稿:“ ^ 2.8.1”。
我有一个高阶组件,它需要一个组件并向其中注入少量道具,然后将其返回:
export type HCProps = {
isValid: boolean,
};
然后我有一个组件,可以从高阶组件中获取注入的道具:
import injector, { HCProps } from './HCComponent';
type Props = {};
const LocalComponent: React.SFC<Props & HCProps> = ({ isValid }) => (
);
export default injector(LocalComponent);
在此,LocalComponent在将其呈现为组件时不采用DOM属性之类的任何道具,但这些道具是由HCComponent
注入的:
<LocalComponent />
这给了我错误:
Type '{}' is not assignable to type 'IntrinsicAttributes & HCProps & Props & { children?: ReactNode; }'.
Type '{}' is not assignable to type 'HCProps'.
Property 'isValid' is missing in type '{}'.
知道为什么会这样吗?我刚接触打字稿。
答案 0 :(得分:0)
我认为您在说
时犯了一个错误LocalComponent在渲染时不接受任何道具
可能您正在渲染默认的导出组件injector(LocalComponent)
在这种情况下,无论喷射器提供什么,您都在使用组件。注射器中应该有一个通用类型,您应该使用类似的
injector<HCProps>(LocalComponent)