Eu gostaria de sugerir uma mudança a seguir,
O componente Dialog
define o estilo <body>
como overflow: hidden;
. E ao dispensar, esta regra de estilo é dispensada.
Mas se o componente for removido do DOM enquanto o Dialog estava sendo mostrado, ele torna o corpo inteiro não rolável devido ao estilo acima.
Eu sugeriria componentWillUnmount
seguinte forma,
componentWillUnmount: function() {
// dialog has a side-effect if this not checked
document.body.style.overflow = 'auto';
}
ou para ser mais independente, a função de ciclo de vida componentDidMount
pode armazenar o estado original do estilo do corpo e, ao desmontar, esse estilo pode ser restaurado.
1 Estou tendo esse problema agora porque estou gerenciando a mim mesmo se o diálogo está no dom ou não.
O problema está dentro do componente Overlay
. A propriedade overflow
só é atualizada em componentDidUpdate
. Mas quando é removida, a propriedade nunca é redefinida: /
+1
Não funciona bem com a propriedade CSS overflow-y: overlay;
:
Comentários muito úteis
Não funciona bem com a propriedade CSS
overflow-y: overlay;
: