带有自己道具的连接组件的TypeScript警告

时间:2017-08-31 17:41:58

标签: javascript reactjs typescript redux react-redux

我有两个组件(聪明和愚蠢)如下:

// Container component file...

interface OwnProps {
  id: Id;
}

function mapStateToProps(state: State, ownProps: OwnProps) {
    return { isActive: ... };
}

export const Container: any = connect(mapStateToProps, null)(DumbComponent);

// Dumb component file...

interface DumbComponentProperties {
    isActive: boolean;
}

export class DumbComponent extends React.Component<DumbComponentProperties, {}> {
    ...
}

我在DumbComponent connect内的id下发出了一个红色波浪警告:

  

类型'typeof DumbComponent'的参数不能赋值给   输入'Component OwnProps&amp; {isActive:boolean;   }” ....&GT;

如果我通过id?选择DumbComponent,则会修复错误。这看起来像TypeScript认为OwnProps需要id类型,因为isActive作为道具传递给它?我不明白为什么会出现这种情况,不仅是DumbComponent属性被传递给curl -XDELETE http://localhost:9200/myindex-1,myindex-2,myindex-3,myindex-4 吗?

1 个答案:

答案 0 :(得分:2)

我认为您的代码没有任何问题,但输入mapStateToProps函数是一个很好的做法,例如,

function mapStateToProps(state: State, ownProps: OwnProps): DumbComponentProperties { return { isActive: ... }; }