我有两个组件(智能和傻瓜),如下所示:
// 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
下收到一个红色的警告:类型'typeof DumbComponent'的参数不能分配给的参数
类型'Component OwnProps&{isActive:boolean;
}'....>
如果通过
id
将id?
设置为可选,则可以修复该错误。看起来TypeScript认为DumbComponent
也需要OwnProps
类型,因为id
是作为道具传递给它的?我不明白为什么会这样,不仅属性isActive
被传递给DumbComponent
吗? 最佳答案
我看不到您的代码有任何问题,但是输入函数mapStateToProps函数是一个好习惯,例如,function mapStateToProps(state: State, ownProps: OwnProps): DumbComponentProperties { return { isActive: ... };}