Enviar e receber estados com useLocation
O hook useLocation
pode ser usado em conjunto com o método navigate
para enviar e receber estados entre diferentes rotas. O método navigate
é fornecido pelo React Router DOM para navegar para outras rotas de forma programática.
Enviar estado para uma nova rota
import { useNavigate } from 'react-router-dom';
function ComponenteOrigem() {
const navigate = useNavigate();
const handleClick = () => {
const estado = { dados: 'alguns dados' };
navigate('/rota-destino', { state: estado });
};
return (
<button onClick={handleClick}>
Ir para Rota Destino com Estado
</button>
);
}
Receber estado na rota destino usando useLocation
import { useLocation } from 'react-router-dom';
function RotaDestino() {
const location = useLocation();
// Verificar se há um estado enviado
const estadoRecebido = location.state;
return (
<div>
<h2>Rota Destino</h2>
{estadoRecebido && (
<p>Dados Recebidos: {estadoRecebido.dados}</p>
)}
</div>
);
}
Ao usar navigate
para direcionar a aplicação para uma nova rota, você pode passar um objeto de estado como segundo argumento. Em seguida, na rota de destino, o hook useLocation
pode ser utilizado para acessar esse estado.