Here's a js fiddle कार्रवाई में प्रश्न दिखा रहा है।प्रतिक्रिया में डोम को कैसे जोड़ना है?
किसी घटक के रेंडर फ़ंक्शन में, मैं कक्षा .blah
के साथ एक div प्रस्तुत करता हूं। समान घटक के componentDidMount
समारोह में, मैं (के बाद से घटक घुड़सवार था) वर्ग .blah
का चयन करें और इस तरह से यह करने के लिए संलग्न करने के लिए सक्षम होने के लिए
$('.blah').append("<h2>Appended to Blah</h2>");
हालांकि, संलग्न सामग्री दिखाई नहीं करता है उम्मीद कर रहा था। मैंने उसी तरीके से जोड़ने के लिए भी कोशिश की (फिडल में भी दिखाया गया) लेकिन एक मूल घटक से एक उपकंपनी में, उसी परिणाम के साथ, और उपरोक्त से भी मूल घटक के स्थान पर उसी परिणाम के साथ। उत्तरार्द्ध का प्रयास करने के लिए मेरा तर्क यह था कि कोई भी यह सुनिश्चित कर सकता है कि डोम तत्व प्रस्तुत किया गया था।
एक ही समय में, मैं getDOMNode
करने में सक्षम था (componentDidMount
समारोह में) और कहा कि
var domnode = this.getDOMNode();
$(domnode).append("<h2>Yeah!</h2>")
अभी तक
कारणों सीएसएस स्टाइल के साथ क्या करने के लिए मैं एक साथ एक div करने के लिए संलग्न करने के लिए सक्षम होने के लिए कामना की को संलग्न कक्षा जो मुझे पता है। इसके अलावा, docsgetDOMNode
के अनुसार के बाद से हटा दिया गया है, और यह एक ही बात
var reactfindDomNode = React.findDOMNode();
$(reactfindDomNode).append("<h2>doesn't work :(</h2>");
मुझे नहीं लगता कि getDOMNode
या findDOMNode
मैं क्या 'करने के लिए सही तरीका है करने के लिए getDOMNode
के प्रतिस्थापन का उपयोग करना संभव नहीं है मैं करने की कोशिश कर रहा हूँ।
प्रश्न: क्या प्रतिक्रिया में किसी विशिष्ट आईडी या कक्षा में शामिल होना संभव है? क्या दृष्टिकोण रहा कि मैं क्या करने की कोशिश कर रहा हूँ पूरा करने के लिए उपयोग करना चाहिए (हालांकि यह पदावनत है getDOMNode
?)
var Hello = React.createClass({
componentDidMount: function(){
$('.blah').append("<h2>Appended to Blah</h2>");
$('.pokey').append("<h2>Can I append into sub component?</h2>");
var domnode = this.getDOMNode();
$(domnode).append("<h2>appended to domnode but it's actually deprecated so what do I use instead?</h2>")
var reactfindDomNode = React.findDOMNode();
$(reactfindDomNode).append("<h2>can't append to reactfindDomNode</h2>");
},
render: function() {
return (
<div class='blah'>Hi, why is the h2 not being appended here?
<SubComponent/>
</div>
)
}
});
var SubComponent = React.createClass({
componentDidMount: function(){
$('.blah').append("<h2>append to div in parent?</h2>");
},
render: function(){
return(
<div class='pokey'> Hi from Pokey, the h2 from Parent component is not appended here either?
</div>
)
}
})
React.render(<Hello name="World" />, document.getElementById('container'));
के हिस्से के रूप में इसे नहीं करना चाहिए यदि आपको डोम को म्यूटेट करने से बचना चाहिए, तो लोग d3.js जैसे पुस्तकालयों का उपयोग कैसे करते हैं जो डोम में संलग्न होते हैं? क्या यह एक अच्छा फिट नहीं है? – BrainLikeADullPencil
आह डी 3 ... हाँ, इसमें अपवाद हैं, खासकर जब यह तीसरे पक्ष के पुस्तकालयों की बात आती है। यदि आप रिएक्ट + डी 3 की खोज करते हैं तो आपको कुछ दृष्टिकोण मिलेगा कि यह कैसे संभाला जाता है। –
अपवाद? आप का मतलब है कि सामान्य नियम के अपवाद हैं कि किसी को डोम को म्यूट करने से बचना चाहिए? – BrainLikeADullPencil