Eu sou novo no ReactJs. Este é o meu código:
var React = require('react');
var ReactDOM = require('react-dom');
var {Route, Router, IndexRoute, hashHistory} = require('react-router');
var Main = require('Main');
ReactDOM.render(
<Router history={hashHistory}>
<Route path="/" component={Main}></Route>
</Router>, document.getElementById('app'));
e compilá-lo com o webpack. Além disso, adicionei o componente principal aos meus aliases. O console gera estes erros: Eu também li estes links:
React Router falhou prop 'histórico', é indefinido
Como eu resolvo que o histórico é marcado como obrigatório, quando o valor é indefinido?
Atualizando React-Router e substituindo hashHistory por browserHistory
e muitas pesquisas na web, mas não consegui resolver esse problema. Roteador React é a versão 4
fonte
<Route...>
instruções múltiplas em um<switch>
wrapper em vez de embrulhá-las<div>
. Se você usar<div>
, isso torna as rotas inclusivas, o que significa que se um caminho pode corresponder a duas rotas, ambos os componentes serão renderizados. Veja todos os detalhes aqui: medium.com/@djoepramono/react-router-4-gotchas-2ecd1282de65Qual versão do roteador React você está usando? A versão 4 do roteador mudou de passar na classe browserHistory para passar uma instância de browserHistory; consulte o exemplo de código nos novos documentos .
Isso tem pegado muitas pessoas que fazem upgrade automaticamente; um documento de migração será lançado 'a qualquer momento'.
Você deseja adicionar isto ao topo:
e
fonte
customHistory
definido?Se você quiser ter várias rotas, pode usar um interruptor como este,
então
fonte
Eu tive o mesmo problema no ES6, mas quando mudei para usar a biblioteca 'react-router-dom', o problema foi resolvido. Para todos os fãs do ES6, vamos lá:
npm install --save react-router-dom
Em index.js:
fonte
In index.js:
ouIn index.jsx:
?A versão 4 do React Router mudou várias coisas. Eles criaram elementos de roteador de nível superior separados para os diferentes tipos de histórico. Se estiver usando a versão 4, você poderá substituir
<Router history={hashHistory}>
por<HashRouter>
ou<BrowserRouter>
.Para obter mais detalhes, consulte https://reacttraining.com/react-router/web/guides
fonte
Eu também escrevo uma prática de login. E também atender a mesma pergunta como você. Depois de um dia de luta, descobri que só
this.props.history.push('/list/')
consigo fazer isso em vez de puxar muitos plug-ins. A propósito, areact-router-dom
versão é^4.2.2
. Obrigado!fonte
O seguinte funciona para mim com "react-router@^3.0.5":
package.json:
index.js:
fonte