javascript - 对于具有自己的 props 的连接组件的 TypeScript 警告

标签 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, {}> {
    ...
}

我在 connect 内的 DumbComponent 下收到一条红色波浪线警告,即:

Argument of type 'typeof DumbComponent' is not assignable to parameter of type 'Component OwnProps & { isActive: boolean; }'....>

如果我通过 id?id 设置为可选,则可以修复错误。看起来 TypeScript 认为 DumbComponent 也需要 OwnProps 类型,因为 id 正在作为 prop 传递给它?我不明白为什么会出现这种情况,难道不是只有属性 isActive 被传递给 DumbComponent 吗?

最佳答案

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

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

关于javascript - 对于具有自己的 props 的连接组件的 TypeScript 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45987282/

相关文章:

javascript - 在javascript中获取不带参数的url的最后一段?

javascript - 正则表达式匹配除空格和最后 4 个字符以外的所有字符

javascript - 对循环中的对象数组应用折扣,无论哪个对象的支付值较高?

javascript - 由许多数组组成的映射 JSON 对象中的表

javascript - 如何通过 JS 中的 WebPack 包提供全局 TypeScript 类

typescript - 如何使用 *ngFor 显示 json 对象

javascript - document.all 和 document.forms[0] 的区别

javascript - 从 django 将字符串分配给 JavaScript var

reactjs - 如何使用reactjs动态生成一对输入字段

angular - 提交后删除验证器