Как в react указать условие, чтобы обращение к dom-элементы происходило после загрузки компонента?

Приложение на react, компоненты функциональные, не классовые, cтраницы в приложении сделаны с помощью слоев GoldenLayout. При заполнении формы на главной странице происходит переход и появляются другие. На главной странице мне нужно убрать иконку ресайза ( которая в правом верхнем углу ), но на других оставить. Страницы связаны между собой через config, поэтому просто в config убрать иконку не получается через следующий код ( иконки пропадают со всех страниц )

settings: {
    showMaximiseIcon: false,
  }


Получилось убрать иконку путем обращения к DOM, но на некоторых страницах появляется сообщение об ошибке, что я пытаюсь обратиться к свойству style у undefined. Пробовала решить эту проблему через window.onload, но не получилось, все равно появляется ошибка. Подскажите, как переписать функцию, чтобы обращение к dom-элементы происходило после полной загрузки страницы, когда уже есть dom-элементы? (аналогично жизненному циклу componentDidUpdate в классовом компоненте)

useHideResizeControl('Прокси-модели');


export const useHideResizeControl = name => {
  useMemo(() => {
    (window.onload = () => {
      const resizeControl = document.querySelector(`[title="${name}"]`)?.parentNode?.parentNode;
      if (resizeControl) {
        resizeControl.children[1].children[1].style.display = 'none';
      }
    })();
  }, [name]);
};
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
Напрямую к дому в реакте обращаются с помощью useRef,
https://reactjs.org/docs/hooks-reference.html#useref
Делаете ref на ближайшем родителе для иконки ресайза и от него уже ищите.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы