【发布时间】:2014-02-09 17:07:16
【问题描述】:
我正在尝试使用 this._rootNodeID 卸载 React.js 节点
handleClick: function() { React.unmountComponentAtNode(this._rootNodeID) }
但它返回false。
handleClick 在我点击一个元素时被触发,并且应该卸载根节点。关于unmountComponentAtNodehere的文档
我也试过这个:
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,尽管如果我对它们进行控制台记录,它们基本上都会返回相同的东西(getElementsByClassName('bla')[0] 也不起作用)
应该有一种简单的方法可以通过this 选择节点,而不必求助于 jQuery 或其他选择器,我知道它就在某个地方..
【问题讨论】:
-
(这个问题也发布在github.com/facebook/react/issues/1044,那里有有价值的答案。)
标签: javascript reactjs