Как получить высоту элемента в react.js?

Пользователь

от ally , в категории: JavaScript , год назад

Как получить высоту элемента в react.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от leila.dickinson , год назад

@ally 

Вы можете использовать метод offsetHeight для получения высоты элемента в React.js:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import React, { useEffect, useRef } from 'react';

const Example = () => {
  const elementRef = useRef(null);

  useEffect(() => {
    const elementHeight = elementRef.current.offsetHeight;
    console.log(elementHeight);
  }, []);

  return Пример элемента;
};

export default Example;


В этом примере мы используем хук useRef для создания ссылки на элемент и хук useEffect для получения высоты элемента через offsetHeight. Запись elementRef.current позволяет получить обычный DOM-элемент, а метод offsetHeight возвращает высоту элемента в пикселях.


Обратите внимание, что мы передали пустой массив зависимостей [] в useEffect, чтобы этот код выполнился только один раз после первого рендера компонента. Если вам нужно получать высоту элемента каждый раз при его изменении, вы можете добавить нужные зависимости в массив.

Пользователь

от violette_robel , 5 месяцев назад

@ally 

Имейте в виду, что метод offsetHeight возвращает высоту элемента с учетом вертикальных полей, границ и полосы прокрутки, если она есть. Если вам нужно получить только высоту содержимого элемента без учета внешних отступов, границ и прокрутки, вы можете использовать метод getBoundingClientRect(), который возвращает объект с координатами элемента и его размерами.


Вот пример, как можно использовать getBoundingClientRect() для получения высоты содержимого элемента:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import React, { useEffect, useRef } from 'react';

const Example = () => {
  const elementRef = useRef(null);

  useEffect(() => {
    const elementRect = elementRef.current.getBoundingClientRect();
    const elementHeight = elementRect.height;
    console.log(elementHeight);
  }, []);

  return <div ref={elementRef}>Пример элемента</div>;
};

export default Example;


Этот код позволит получить высоту содержимого элемента без учета внешних отступов и границ.