Tôi đang làm việc trên một dự án với Typescript, React và Redux (tất cả đều chạy trong Electron) và tôi đã gặp sự cố khi đưa một thành phần dựa trên lớp vào một thành phần khác và cố gắng chuyển các tham số giữa chúng. Nói một cách dễ hiểu, tôi có cấu trúc sau cho thành phần vùng chứa:
class ContainerComponent extends React.Component<any,any> {
..
render() {
const { propToPass } = this.props;
...
<ChildComponent propToPass={propToPass} />
...
}
}
....
export default connect(mapStateToProps, mapDispatchToProps)(ContainerComponent);
Và thành phần con:
interface IChildComponentProps extends React.Props<any> {
propToPass: any
}
class ChildComponent extends React.Component<IChildComponentProps, any> {
...
}
....
export default connect(mapStateToProps, mapDispatchToProps)(ChildComponent);
Rõ ràng là tôi chỉ bao gồm những điều cơ bản và còn nhiều điều khác nữa cho cả hai lớp này nhưng tôi vẫn gặp lỗi khi tôi thử và chạy những gì trông giống như mã hợp lệ đối với tôi. Lỗi chính xác mà tôi đang gặp phải:
TS2339: Property 'propToPass' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<{}, ComponentState>> & Readonly<{ childr...'.
Khi lần đầu tiên tôi gặp lỗi, tôi nghĩ đó là do tôi không chuyển giao diện xác định đạo cụ của mình, nhưng tôi đã tạo ra điều đó (như bạn có thể thấy ở trên) và nó vẫn không hoạt động. Tôi tự hỏi, có điều gì đó tôi đang thiếu?
Khi tôi loại trừ phần hỗ trợ ChildComponent khỏi mã trong ContainerComponent, nó hiển thị rất tốt (ngoài việc ChildComponent của tôi không có phần hỗ trợ quan trọng) nhưng với nó trong JSX Typescript từ chối biên dịch nó. Tôi nghĩ rằng nó có thể liên quan đến gói kết nối dựa trên bài viết này , nhưng sự cố trong bài viết đó đã xảy ra trong tệp index.tsx và là sự cố với nhà cung cấp và tôi đang gặp sự cố ở nơi khác.
React.Props
đã không được chấp nhận !!