Я работаю над проектом с Typescript, React и Redux (все работает в Electron), и у меня возникла проблема, когда я включаю один компонент на основе класса в другой и пытаюсь передать параметры между их. Наоборот, у меня есть следующая структура для контейнерного компонента:
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);
Очевидно, что я только включаю в себя основы, и для обоих этих классов гораздо больше, но я все еще получаю сообщение об ошибке, когда я пытаюсь запустить то, что выглядит для меня как правильный код. Точная ошибка, которую я получаю:
TS2339: Property 'propToPass' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<{}, ComponentState>> & Readonly<{ childr...'.
Когда я впервые столкнулся с ошибкой, я подумал, что это связано с тем, что я не передавал интерфейс, определяющий мои реквизиты, но я создал это (как вы можете видеть выше), и он все еще не работает. Мне интересно, есть ли что-то, что мне не хватает?
Когда я исключаю поддержку ChildComponent из кода в ContainerComponent, он отлично выглядит (кроме моего ChildComponent, не имеющего критической опоры), но с ним в JSX Typescript отказывается компилировать его. Я думаю, что это может иметь какое-то отношение к обертке подключений на основе этой статьи, но проблемы в этой статье произошли в файле index.tsx и были проблемы с провайдером, и я получаю свои проблемы в другом месте.