卸载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

回到顶部