Ich möchte folgende Änderung vorschlagen,
Die Komponente Dialog
legt den Stil <body>
als overflow: hidden;
. Und bei Entlassung wird diese Stilregel verworfen.
Wenn die Komponente jedoch aus dem DOM entfernt wird, während Dialog angezeigt wurde, wird der gesamte Körper aufgrund des obigen Stils nicht scrollbar.
Ich würde ein componentWillUnmount
wie folgt vorschlagen:
componentWillUnmount: function() {
// dialog has a side-effect if this not checked
document.body.style.overflow = 'auto';
}
oder um unabhängiger zu sein, kann die Lebenszyklusfunktion componentDidMount
den ursprünglichen Zustand des Karosseriestils speichern und beim Aushängen kann dieser Stil wiederhergestellt werden.
+1 Ich habe dieses Problem gerade, weil ich mich selbst verwalte, ob der Dialog im Dom ist oder nicht.
Das Problem liegt in der Overlay
Komponente. Die Eigenschaft overflow
wird nur in componentDidUpdate
aktualisiert. Aber wenn es entfernt wird, wird die Eigenschaft daher nie zurückgesetzt :/
+1
Funktioniert nicht gut mit overflow-y: overlay;
CSS-Eigenschaft:
Hilfreichster Kommentar
Funktioniert nicht gut mit
overflow-y: overlay;
CSS-Eigenschaft: