Typescript, React ve Redux ile bir proje üzerinde çalışıyorum (hepsi Electron'da çalışıyor) ve bir sınıfa dayalı bileşeni diğerine dahil ettiğimde ve aralarında parametreleri geçirmeye çalıştığımda bir sorunla karşılaşıyorum. Kabaca konuşursak, konteyner bileşeni için aşağıdaki yapıya sahibim:
class ContainerComponent extends React.Component<any,any> {
..
render() {
const { propToPass } = this.props;
...
<ChildComponent propToPass={propToPass} />
...
}
}
....
export default connect(mapStateToProps, mapDispatchToProps)(ContainerComponent);
Ve alt bileşen:
interface IChildComponentProps extends React.Props<any> {
propToPass: any
}
class ChildComponent extends React.Component<IChildComponentProps, any> {
...
}
....
export default connect(mapStateToProps, mapDispatchToProps)(ChildComponent);
Açıkçası ben sadece temelleri ekliyorum ve bu sınıfların her ikisinde de çok daha fazlası var ama bana geçerli kod gibi görünen şeyi çalıştırmaya çalıştığımda hala bir hata alıyorum. Aldığım tam hata:
TS2339: Property 'propToPass' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<{}, ComponentState>> & Readonly<{ childr...'.
Hatayla ilk karşılaştığımda, sahne donanımımı tanımlayan bir arayüzden geçmediğim için olduğunu düşündüm, ancak bunu yarattım (yukarıda görebileceğiniz gibi) ve hala çalışmıyor. Merak ediyorum, kaçırdığım bir şey mi var?
ChildComponent prop'unu ContainerComponent içindeki koddan hariç tuttuğumda, gayet iyi işliyor (ChildComponent'imin kritik bir prop'a sahip olmaması dışında), ancak JSX Typescript'te onunla birlikte onu derlemeyi reddediyor. Sanırım bu makaleye dayanarak bağlantı sarmalamayla bir ilgisi olabilir , ancak bu makaledeki sorunlar index.tsx dosyasında meydana geldi ve sağlayıcıyla ilgili bir sorundu ve sorunlarımı başka bir yerde alıyorum.
React.Props
kullanımdan kaldırıldı !!