栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在渲染之前获取React组件的大小(高度/宽度)?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在渲染之前获取React组件的大小(高度/宽度)?

如前所述,在将元素呈现为DOM之前,您无法获得任何元素的尺寸。在React中,您可以做的只是渲染一个容器元素,然后在中获取其大小

componentDidMount
,然后渲染其余内容。

我做了一个有效的例子。

请注意,使用

setState
in
componentDidMount
是一种反模式,但在这种情况下可以使用,因为这正是我们要实现的目标。

干杯!

码:

import React, { Component } from 'react';export default class Example extends Component {  state = {    dimensions: null,  };  componentDidMount() {    this.setState({      dimensions: {        width: this.container.offsetWidth,        height: this.container.offsetHeight,      },    });  }  renderContent() {    const { dimensions } = this.state;    return (      <div>        width: {dimensions.width}        <br />        height: {dimensions.height}      </div>    );  }  render() {    const { dimensions } = this.state;    return (      <div className="Hello" ref={el => (this.container = el)}>        {dimensions && this.renderContent()}      </div>    );  }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/418034.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号