从React子元素获取DOM节点
使用React.findDOMNode
v0.13.0中引入的方法,我可以通过映射到来获取传递给父级的每个子组件的DOM节点this.props.children
。
但是,如果某些子项恰好是React
Elements而不是Components(例如,其中一个子项是<div>
通过JSX创建的),则React会引发不变的违规错误。
挂载后,是否有一种方法可以获取每个子级的正确DOM节点,而不管该子级是什么类?
回答:
this.props.children
应该是一个ReactElement或一个ReactElement数组,但不能是组件。
要获取子元素的DOM节点,您需要对其进行克隆并为其分配新的引用。
render() { return (
<div>
{React.Children.map(this.props.children, (element, idx) => {
return React.cloneElement(element, { ref: idx });
})}
</div>
);
}
然后,您可以通过访问子组件this.refs[childIdx]
,并通过检索其DOM节点ReactDOM.findDOMNode(this.refs[childIdx])
。
以上是 从React子元素获取DOM节点 的全部内容, 来源链接: utcz.com/qa/428212.html