2015-10-30 8 views
12

यह एक त्वरित है: किस दायरे में बच्चों की चाबियाँ अद्वितीय होनी चाहिए? क्या यह सिर्फ मूल घटक या संपूर्ण ऐप है?एक प्रतिक्रिया घटक कुंजी कितनी अनूठी होनी चाहिए?

यदि उत्तरार्द्ध सत्य है, तो इसका मतलब यह है कि प्रतिक्रिया भिन्न एल्गोरिदम एक तत्व को संरक्षित रखेगा जब यह मूल घटकों में चलेगा?

+3

यह भाई बहनों के भीतर अद्वितीय होना चाहिए। – zerkms

उत्तर

10

अपने भाई बहनों के भीतर अद्वितीय, तो सीधे अपने माता-पिता के नीचे स्तर। मूल घटक के बच्चे हालांकि एक ही कुंजी का फिर से उपयोग कर सकते हैं, क्योंकि आखिरकार, प्रतिक्रिया वर्तमान घटक और उसके सभी पूर्वजों की कुंजी से पूरी कुंजी तैयार करेगी। नीचे दिए गए उदाहरण में केवल ऑटो-जेनरेट की गई कुंजी शामिल हैं, लेकिन यदि आप अपनी कुंजी प्रदान करते हैं, तो इसका उपयोग इसके बजाय किया जाएगा।

React ID's

आप Chrome डेवलपर टूल (टैब तत्वों) में रचना आईडी देख सकते हैं।

+1

कूल, समझ में आता है, इसलिए दूसरे प्रश्न का उत्तर देने के लिए, किसी अन्य माता-पिता को एक घटक ले जाने से यह प्रतिक्रिया के लिए एक पूरी तरह से अलग तत्व बनाता है और इसे स्क्रैच से पुनर्निर्मित किया जाएगा, है ना? – konrad

1

हाँ, यह की तरह लग रहा है ... आप फिर से माता-पिता अगर यह, यह एक अलग reactid (जैसे। http://webcloud.se/react-sortable/nested.html)

दे देंगे और फिर से माउंट अनमाउंट होगा/फिर से। ...

http://jsfiddle.net/46x0j6uq/1/

,componentWillUnmount: function() { 
//console.log("unmounted:", this.props); 
clearInterval(this.state.intervalId); 
clearTimeout(this.state.timeoutId); 
} 
,componentDidMount: function(){ 
    // console.log("mounted:", this.props); 
    this.state.intervalId = setInterval(this.incrementCount, 1000); 
this.state.timeoutId = setTimeout(this.setColorToBlack, 300); 
} 

तो, बेहतर राज्य दृश्य ही घटक में स्टोर करने के लिए नहीं है, क्योंकि यह अपने आप रीसेट हो सकता है। उपरोक्त पहेली एक बिंदु साबित करने के लिए सिर्फ एक डेमो है।

अन्य संबंधित लिंक: Using keys to identify nested components in React.js

मैंने किया था इच्छा प्रतिक्रिया एक ही स्तर से परे स्कोप्ड/नेस्ट कुंजी राज्यों विचार करने के लिए कुछ नहीं था, लेकिन मैं unmounting/के प्रदर्शन अनुमान फिर से बढ़ते फिर से उम्मीद है कि नहीं भी हानिकारक होना चाहिए ।

संबंधित मुद्दे