次の変更を提案したいと思います、
Dialog
コンポーネントは、 <body>
スタイルをoverflow: hidden;
ます。 そして、却下すると、このスタイルルールは却下されます。
ただし、Dialogの表示中にコンポーネントがDOMから削除されると、上記のスタイルのために全身がスクロールできなくなります。
次のようにcomponentWillUnmount
を提案します。
componentWillUnmount: function() {
// dialog has a side-effect if this not checked
document.body.style.overflow = 'auto';
}
または、より独立させるために、 componentDidMount
ライフサイクル関数はボディスタイルの元の状態を保存でき、マウントを解除すると、そのスタイルを復元できます。
+1ダイアログがドーム内にあるかどうかにかかわらず、自分で管理しているため、現在この問題が発生しています。
問題はOverlay
コンポーネントの内部にあります。 overflow
プロパティは、 componentDidUpdate
のみ更新されます。 ただし、削除しても、プロパティがリセットされることはありません:/
+1
overflow-y: overlay;
CSSプロパティではうまく機能しません:
最も参考になるコメント
overflow-y: overlay;
CSSプロパティではうまく機能しません: