Реагировать : Применить переполнение тела к определенному компоненту

#javascript #reactjs

Вопрос:

Я создал приложение react с помощью create-react-app . Моя файловая структура выглядит следующим образом :

 Index.js
App.css
App.js
-- MyComponent1.js
-- MyComponent2.js
 

Чтобы перемещаться между двумя компонентами, которые я использую react-router-dom , App.js вот так :

 <BrowserRouter>
        <Route path='/MyComponent1' exact component={MyComponent1} />
        <Route path='/MyComponent2' exact component={MyComponent2} />
</BrowserRouter>
 

Таким образом, оба компонента используют один и тот же App.css стиль, импортированный в App.js

Я хочу применить an overflow:hidden к телу, когда я только включен Component1 , и удалить этот новый класс на других компонентах, как это сделать ?

Ответ №1:

Нашел решение!

Все, что мне нужно было сделать, это использовать document.body непосредственно компонент для установки стилей непосредственно с помощью Hook.

Так overflow:visible будет применено при монтаже компонента и overflow:hidden при демонтаже компонента, как показано ниже :

       useEffect(() => {
// Applying on mount
        document.body.style.overflow = "hidden";
// Applying on unmount    
        return () => {
          document.body.style.overflow = "visible";
        }
      }, [])