निम्नलिखित कोड जावास्क्रिप्ट में खुशी से काम करेगा। मैं प्रतिक्रिया + टाइपस्क्रिप्ट का उपयोग कर रहा हूं, इसलिए यह एक JSX फ़ाइल है:

कॉलिंग घटक:

<FiltersPanel onFiltersChanged={() => { console.log('I was called') }} />

आंतरिक घटक:

const FiltersPanel = (onFiltersChanged) => {

    const handleFiltersChange = () => {
        onFiltersChanged(); /* I am getting `TypeError: onFiltersChanged is not a function` */
    };

    return (<div onClick={handleFiltersChange}/> );
};

export default FiltersPanel;

टाइपस्क्रिप्ट शिकायत क्यों कर रहा है कि यह फ़ंक्शन नहीं ढूंढ सकता है, जबकि फ़ंक्शन निश्चित रूप से एक प्रोप के रूप में पारित किया जाता है।

0
Amarsh 27 अगस्त 2019, 04:58

1 उत्तर

सबसे बढ़िया उत्तर

आपने फ़ंक्शन को प्रॉप्स के रूप में पास किया है, इसलिए आपको इसे अपने कंपोनेंट को इस तरह प्रॉप्स के रूप में प्राप्त करना चाहिए

const FiltersPanel = (props) => {  }

फिर इसे इस तरह इस्तेमाल करें

props.onFiltersChanged()

या आप इस तरह विनाशकारी का उपयोग कर सकते हैं

const FiltersPanel = ({onFiltersChanged}) => { }

तो आप इसे बिना प्रॉप्स ऑब्जेक्ट के इस तरह इस्तेमाल कर सकते हैं

onFiltersChanged()
2
JkAlombro 27 अगस्त 2019, 05:02