卸载React.js节点
我正在尝试用以下方法卸载React.js节点 this._rootNodeID
handleClick: function() {
React.unmountComponentAtNode(this._rootNodeID)
}
但是它又回来了false
。
在handleClick
当我点击一个元素上,而应卸载根节点被激发。此处的文档unmountComponentAtNode
我也尝试过:
React.unmountComponentAtNode($(’* [data-reactid =“’+ this._rootNodeID
+’”]’)[0])
该选择器可与一起使用jQuery.hide()
,但不能与之卸载,但文档指出它应为DOMElement
,就像您将用于React.renderComponent
经过更多测试之后,结果证明它可以在 某些 元素/选择器上运行。
它以某种方式与选择器一起工作:document.getElementById('maindiv')
,其中maindiv
的元素不是用React.js生成的,而只是纯HTML。然后返回true
。
但是,一旦我尝试选择由React.js生成的另一个ElementById,它就会返回false。而且它们都不会起作用document.body
,尽管如果我用console.log记录它们,它们基本上都返回相同的东西(getElementsByClassName('bla')[0]
同样不起作用)
应该有一种通过来选择节点的简单方法this
,而不必诉诸jQuery或其他选择器,我知道它在某个地方。
回答:
从与安装组件相同的DOM元素中卸载组件。因此,如果执行以下操作:
ReactDOM.render(<SampleComponent />, document.getElementById('container'));
然后,您将使用以下命令卸载它:
ReactDOM.unmountComponentAtNode(document.getElementById('container'));
这是一个简单的JSFiddle,我们在其中安装组件,然后在3秒钟后将其卸载。
以上是 卸载React.js节点 的全部内容, 来源链接: utcz.com/qa/427861.html