इस ब्लॉग पोस्ट में, मैं आपको एक व्यावहारिक परिदृश्य के बारे में बताऊंगा जहां एक मूल घटक (ListBox) एक चाइल्ड घटक (AlertComponent के साथ इंटरैक्ट करता है ]) प्रॉप्स और कॉलबैक का उपयोग करना।
यह रिएक्ट में तब उपयोगी होता है जब आप चाहते हैं कि कोई चाइल्ड कंपोनेंट स्थिति बनाए रखने या कार्रवाइयों को ट्रिगर करने के लिए पैरेंट से वापस संवाद करे।
आइए इस उदाहरण की मदद से समझते हैं:
यहां बातचीत का विवरण दिया गया है:
import React, { useState } from 'react'; import AlertComponent from './AlertComponent'; const ListBox = () => { const [showComponent, setShowComponent] = useState(false); const alertAction = async () => { setShowComponent(!showComponent); }; return ( ); }; export default ListBox;{/* Passing props to the child component */}Item 1
{/* Other list items */}{ alert('Item Deleted'); setShowComponent(false); }} onCancel={() => setShowComponent(false)} showComponent={alertAction} />
export const AlertComponent: = ({ title, description, onAccept, onCancel, showComponent }) => { return (... rest of the code ) }
showComponent एक कॉलबैक के रूप में काम कर रहा है क्योंकि यह उस स्थिति को बनाए रखता है जो AlertComponent
को दिखाने/छिपाने के लिए जिम्मेदार है।जब भी Reject दबाया जाता है, तो यह कॉलबैक शोकंपोनेंट की वर्तमान स्थिति को चालू कर देगा।
{ alert('Item Deleted'); setShowComponent(false); }} onCancel={() => setShowComponent(false)} showComponent={alertAction} />
इस तरह से प्रॉप्स और कॉलबैक का उपयोग करने से रिएक्ट में पैरेंट और चाइल्ड घटकों के बीच डेटा का स्पष्ट प्रवाह संभव हो जाता है।
माता-पिता स्थिति को नियंत्रित कर सकते हैं और इसे बच्चे को दे सकते हैं, जबकि बच्चा उपयोगकर्ता द्वारा किए गए किसी भी बदलाव या कार्रवाई के बारे में माता-पिता को सूचित करने के लिए कॉलबैक के माध्यम से वापस संवाद कर सकता है।
यह उपयोगकर्ता इंटरैक्शन के जवाब में अलर्ट, मोडल या पॉप-अप दिखाने जैसे परिदृश्यों के लिए विशेष रूप से उपयोगी है।
निर्माण जारी रखें!
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3