मैं टाइपस्क्रिप्ट, रिएक्ट और रेडक्स (इलेक्ट्रॉन में चलने वाले सभी) के साथ एक परियोजना पर काम कर रहा हूं, और मैं एक समस्या में चला गया हूं जब मैं एक वर्ग आधारित घटक को दूसरे में शामिल कर रहा हूं और उनके बीच मापदंडों को पारित करने की कोशिश कर रहा हूं। धीरे-धीरे बोलना, मुझे कंटेनर घटक के लिए निम्न संरचना मिली है:
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...'.
जब मुझे पहली बार त्रुटि का सामना करना पड़ा तो मुझे लगा कि यह इसलिए था क्योंकि मैं अपने प्रॉम्प्ट को परिभाषित करने वाले इंटरफ़ेस में नहीं गुजर रहा था, लेकिन मैंने इसे बनाया (जैसा कि आप ऊपर देख सकते हैं) और यह अभी भी काम नहीं करता है। मुझे आश्चर्य हो रहा है, क्या मुझे कुछ याद आ रहा है?
जब मैं कंटेनरकम्पोनेंट में कोड से चाइल्डकंपोनेंट प्रोप को बाहर करता हूं, तो यह ठीक-ठीक प्रस्तुत होता है (मेरे चाइल्डकम्पोनेंट से अलग एक महत्वपूर्ण प्रस्ताव नहीं है) लेकिन इसके साथ जेएसएक्स टाइपस्क्रिप्ट ने इसे संकलित करने से इनकार कर दिया। मुझे लगता है कि इस लेख के आधार पर कनेक्ट रैपिंग के साथ इसका कुछ करना हो सकता है , लेकिन उस लेख में समस्याएं index.tsx फ़ाइल में हुईं और प्रदाता के साथ एक समस्या थी, और मुझे अपनी समस्याएं कहीं और मिल रही हैं।
React.Props
पदावनत कर दिया गया है !!