react中findDomNode

在使用react过程中,大家有时会

import { findDomNode } from 'react-dom';

  那么这里的findDomNode是做什么的呢?

  简单来说是用来得到实际Dom的,因为react组件有个特点,它有自定义组件,比如<NavBox/>这种,用ref来获取这种组件获取到的这是组件定义的对象的实例,见下面代码

getNodeInstance() {
    const nodeInstance = this.refs.navBox;
}    


function WapShop() {
    return (
        <div>
              <NavBox ref="navBox" />
        </div>
    );
}

  这里的nodeInstance就是一个NavBox的实例,但是如果这样:

let initialNode  =  findDomNode(this.refs.navBox);

  此时initailNode会得到NavBox组件中render方法返回的dom元素。

  那我们拿到这个dom就是可以获取诸如offsetWidth这种需要的属性了。岂不快哉!

原文地址:https://www.cnblogs.com/jiangbanji/p/7668452.html