类型“ {}”不可分配给类型“ IntrinsicAttributes&DropdownProps&Props&

时间:2018-12-11 10:16:50

标签: javascript reactjs typescript react-props

我正在使用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 '{}'.

知道为什么会这样吗?我刚接触打字稿。

1 个答案:

答案 0 :(得分:0)

我认为您在说

时犯了一个错误
  

LocalComponent在渲染时不接受任何道具

可能您正在渲染默认的导出组件injector(LocalComponent)

在这种情况下,无论喷射器提供什么,您都在使用组件。注射器中应该有一个通用类型,您应该使用类似的

injector<HCProps>(LocalComponent)