在组件的渲染函数中,我渲染了一个带有 class 的 div .blah
。在componentDidMount
同一个组件的功能中,我希望能够.blah
像这样选择类并附加到它(因为组件已安装)
$('.blah').append("<h2>Appended to Blah</h2>");
但是,附加的内容不会显示。我还尝试(也显示在小提琴中)以相同的方式附加到子组件中,但结果相同,并且从子组件附加到父组件的空间中,结果相同。我尝试后者的逻辑是,可以更确定 dom 元素已被渲染。
同时,我能够(在componentDidMount
函数中)getDOMNode
附加到那个
var domnode = this.getDOMNode();
$(domnode).append("<h2>Yeah!</h2>")
然而,使用 CSS 样式的原因我希望能够将我知道的类附加到 div。此外,由于根据文档 getDOMNode
已弃用,并且不可能使用替换getDOMNode
来做同样的事情
var reactfindDomNode = React.findDOMNode();
$(reactfindDomNode).append("<h2>doesn't work :(</h2>");
我不认为getDOMNode
或者findDOMNode
是做我想做的事情的正确方法。
问题:是否可以在 React 中附加到特定的 id 或类?我应该使用什么方法来完成我想要做的事情(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'));