Usando react-router você pode facilmente evitar a mudança de rota (o que impedirá a desmontagem do componente) usando Prompt. Você precisa passar manualmente o prop getUserConfirmation que é uma função. Você pode modificar esta função como quiser em qualquer roteador (navegador, memória ou hash) para criar sua caixa de diálogo de confirmação personalizada (por exemplo.
O que faz com que um componente seja desmontado?
Os componentes são desmontados quando o componente pai não é mais renderizado ou o componente pai executa uma atualização que não renderiza esta instância.
Como reage desmontar um componente?
Desmontar um React Node
O React tem uma API de nível superior chamada unmountComponentAtNode que remove um componente de um container específico. A função unmountComponentAtNode recebe um argumento como um contêiner do qual o componente específico deve ser removido.
O que é desmontar um componente?
O objetivo deste método é destruir os efeitos colaterais criados pelo componente Uma vez que o componente é desmontado, não podemos usá-lo novamente. Toda vez que um novo componente é criado. Além disso, se não houver diferença no dom virtual e dom real, o react também pode interromper a fase de atualização.
Como saber se um componente está desmontado?
Apenas defina uma propriedade _isMounted como true em componentDidMount e defina como false em componentWillUnmount, e use esta variável para verificar o status do seu componente. Uma solução ótima seria encontrar locais onde setState possa ser chamado após a desmontagem de um componente e corrigi-los.