我正在使用Typescript、React和Redux(都在Electron中运行)进行一个项目,当我在另一个基于类的组件中包含一个组件并试图在它们之间传递参数时,我遇到了一个问题.粗略地说,我为容器组件提供了以下 struct :
class ContainerComponent extends React.Component<any,any> {
..
render() {
const { propToPass } = this.props;
...
<ChildComponent propToPass={propToPass} />
...
}
}
....
export default connect(mapStateToProps, mapDispatchToProps)(ContainerComponent);
以及子组件:
interface IChildComponentProps extends React.Props<any> {
propToPass: any
}
class ChildComponent extends React.Component<IChildComponentProps, any> {
...
}
....
export default connect(mapStateToProps, mapDispatchToProps)(ChildComponent);
显然,我只包含了基础知识,这两个类都有更多内容,但当我try 运行我认为有效的代码时,仍然会出现错误.我得到的确切错误是:
TS2339: Property 'propToPass' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<{}, ComponentState>> & Readonly<{ childr...'.
当我第一次遇到这个错误时,我认为这是因为我没有传递一个定义我的props 的接口,但是我创建了这个接口(正如你在上面看到的),它仍然不起作用.我在想,我是不是错过了什么?
当我从ContainerComponent中的代码中排除ChildComponent属性时,它呈现的很好(除了我的ChildComponent没有关键属性之外),但在JSX Typescript中,它拒绝编译它.我认为这可能与基于this article的连接包装有关,但那篇文章中的问题发生在索引中.tsx文件和服务Provider 有问题,我在其他地方遇到了问题.