javascript - React在componentDidMountt获取元素宽高的问题
PHP中文网
PHP中文网 2017-04-11 11:32:32
[JavaScript讨论组]

1、获取React元素的宽高遇到的问题。
2、按理说componentDidMount里面获取DOM的高度应该是36px,为什么每次都是144px,但是如果用setTimeout之后再调用就对了。

componentDidMount的函数如下:

    componentDidMount(){

        let tabDOM1 = this.tabDOM;

        console.log(tabDOM1);   //
    ...
console.log(tabDOM1.scrollHeight); //144 console.log(window.getComputedStyle(tabDOM1).height); //144px let tabDOM2 = ReactDom.findDOMNode(this.tabDOM); console.log(tabDOM2); //
    ...
console.log(tabDOM2.scrollHeight); //144 console.log(window.getComputedStyle(tabDOM2).height); //144px setTimeout(function(){ let tabDOM1 = this.tabDOM; console.log(tabDOM1); //
    ...
console.log(tabDOM1.scrollHeight); //36 console.log(window.getComputedStyle(tabDOM1).height); //36px let tabDOM2 = ReactDom.findDOMNode(this.tabDOM); console.log(tabDOM2); //
    ...
console.log(tabDOM2.scrollHeight); //36 console.log(window.getComputedStyle(tabDOM2).height); //36px }.bind(this),1000) }

render函数如下:

    render() {
        let tabContent;//内容主体
        let list;//li的标签列表

        return (
            

    {this.tabDOM = dom}} > {list}

{tabContent}

) }

css如下

ul{
  list-style: none;
  margin:0;
  padding:0;
  height:36px;
  border-bottom:4px solid #666;
  overflow: hidden;
}
PHP中文网
PHP中文网

认证0级讲师

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号