Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Erro com o matchPattern

Podem me ajudar, após finalizar o curso (aula 5), quando rodo a aplicação ainda me retorna o erro

./src/index.js
Module not found: Can't resolve 'react-router/lib/PatternUtils' in 'C:\Users\drope\Documents\Alura\react2\node_modules\.bin\instalura\src'

Na verdade, o meu react router não tem a pasta react-router/lib/PatternUtils, somente uma pasta /es e outra /umd.

Além disso não consigo encontrar o arquivo PatternUtils

Meu react-router está setano no packege.json como:

"react-router": "^4.1.1"

Podem me ajudar?

3 respostas

Oi Pedro, como até comentei no curso, uma mudança de versão poderia afetar o uso daquele módulo, já que era algo específico do router mesmo.

Você pode tentar adaptar usando a documentação aqui => https://reacttraining.com/react-router/web/api/matchPath

solução!

Beleza, Alberto,

Legal conhecer a documentação interna do machPath, mas me enrolei para utilizar. Ao invés disso, consegui fazer um uninstall no react-router e instalar a versão 3.0.0.

Desta forma consegui rodar a aplicação. Obrigado!

insira seu código aqui
```Pra quem estiver usando o react-router-dom eu resolvi da seguinte maneira:
Importei o componente matchPath de react-router-dom e instalei o component history.
npm install --save history

código:

```import createBrowserHistory from 'history/createBrowserHistory';
import { BrowserRouter, Route, Switch, Redirect, matchPath } from 'react-router-dom';

const _isLoggedIn = () => {
    const history = createBrowserHistory();
     const match = matchPath(history.location.pathname,  {path: '/timeline/:login'});

        const privateRoute = match === null;

    return (privateRoute && localStorage.getItem('auth-token')) === null;
};

depois só testar na Rota:

<Route
                    path="/timeline"
                    render={() => (
                        _isLoggedIn() ?
                            (<Redirect to="/?msg=Você precisa estar logado." />) : (<App />)
                    )}
 />