Boa tarde, No curso de React utilizamos o Router V3 onde consegui fazer as atividades dada pelo instrutor e meus exercícios por conta normalmente, porem vi que tem a versão 4 do Router e com ela não to conseguindo fazer.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Boa tarde, No curso de React utilizamos o Router V3 onde consegui fazer as atividades dada pelo instrutor e meus exercícios por conta normalmente, porem vi que tem a versão 4 do Router e com ela não to conseguindo fazer.
React Router v4 é fundamentalmente diferente da v3 (e anterior) e você não pode fazer this.BrowserRouter.push() como costumava fazer.
Criar um novo this.BrowserRouter não funcionará porque cria sua própria instância de histórico e ouve alterações nele. Então, uma instância diferente mudará o URL, mas não atualizará o .
this.BrowserRouter não é exposto pelo react-router na v4, apenas na v2.
Em vez disso, você tem algumas opções para fazer isso:
Use o withRoutercomponente de alta ordem Em vez disso, você deve usar o withRoutercomponente de alta ordem, e envolver isso para o componente que irá empurrar para o histórico. Por exemplo:
import React from "react";
import { withRouter } from "react-router-dom";
class MyComponent extends Component {
...
myFunction() {
this.props.history.push("/some/Path");
}
...
}
export default withRouter(MyComponent);
Confira a documentação oficial para mais informações:https://reacttraining.com/react-router/web/api/withRouter
Você pode obter acesso ao historypropriedades do objeto e os mais próximos 's match através do componente de ordem superior withRouter. withRouter vai voltar a tornar a sua componente cada vez que as mudanças de rota com os mesmos adereços como tornar adereços: { match, location, history }.
espero ter ajudado.