2016-12-21 7 views
18

Pod moim root div reaguje tworzy kolejny div "automatycznie". Czy istnieje sposób na dodanie klasy do tego div? Muszę dodać wysokość: 100%, aby zapobiec przewijaniu treści w tle na urządzeniu mobilnym po wyświetleniu nakładki.Dodaj CSS do reagowania utworzonych elementów, takich jak reaktor danych

Tak to wygląda, gdy sprawdzam element na stronie. Należy dodać wysokość: 100% do div reaktywacji danych po kliknięciu przycisku. Ale ten div nie jest nigdzie w moim kodzie źródłowym.

<div id="root"> 
    <div data-reactroot data-reactid="1" data-react-checksum="161698... 

mogę dodać ten kod w pojemniku za componentDidMount()

let root = document.querySelectorAll('[data-reactroot]')[0]; 
    if (root) { 
     root.style.height = '100%'; 
    } 

Ale isnt istnieje lepszy sposób to zrobić? To wydaje się być trochę hackowate (w zły sposób)

+5

'#root> [danych reactroot] {height: 100%}' w CSS powinno działać. –

+0

Kiedy mówisz, że wewnętrzny div jest tworzony "automatycznie", co dokładnie masz na myśli? Czy jest tworzony przez komponent, nad którym nie masz kontroli? –

+0

z utworzonym automatycznie mam na myśli, że nie mam ich w moim JSX. Fabian Schultz Twój komentarz działa naprawdę, wielkie dzięki! – user3711421

Odpowiedz

17

#root > [data-reactroot] { height: 100% } w CSS powinno działać.

Lub po prostu sam tag:

[data-reactroot] { ... } 
2

Jeśli chcesz używać in-line css, po prostu ustaw najwyższą pozycję div jako absolutną, a lewą, górną, prawą, dolną - zero. Więc jeśli skontrolować element:

<div id="root"> 
    <div data-reactroot> 
    <div style="position: absolute; top: 0px; left: 0px; right: 0px; bottom: 0px> 
     .... 
+0

Z jakiegoś powodu rozwiązanie Fabiana nie działało, to działało dla mnie. – TYMG

Powiązane problemy