Реагировать - перейти на маршрутизатор 4 - PullRequest
0 голосов
/ 14 февраля 2019

Я в процессе миграции моего приложения React с React-Router-3 на React-Router-4, и у меня возникло несколько проблем.Структура моего приложения выглядит следующим образом.

build
node_modules
public
src
  AboutScreen
  ContactScreen
  HomeScreen
  LoginScreen
  SignUpScreen
  WorkRequestScreen
  App.js
  index.js
  routes.js
  serviceWorker.js
package.json
package-lock.json

Я получаю следующую ошибку:

. / Src / index.js: Строка 8: Неожиданное использование 'history'no-limited-globals

Когда я удаляю history={history} из index.js, я получаю следующую ошибку:

TypeError: Невозможно прочитать свойство' location 'of undefined

Я следовал следующему руководству для перехода с 3 на 4.

https://codeburst.io/react-router-v4-unofficial-migration-guide-5a370b8905a

My route.jsвыглядит так:

import React from 'react';
import { Route, Redirect, Router, Switch } from 'react-router-dom';
import createHashHistory from 'history/createHashHistory';
import App from './App';

import Home from './HomeScreen/Home';
import WorkReq from './WorkRequestScreen/WorkReq';
import About from './AboutScreen/About';
import Contact from './ContactScreen/Contact';
import Login from './LoginScreen/Login';
import Signup from './SignUpScreen/Signup';

const history = createHashHistory();
const routes = () => (
  <Router history={history}>
    <Switch>
      <Route exact path="/workReq" component={WorkReq}/>
      <Route exact path="/about" component={About}/>
      <Route exact path="/contact" component={Contact}/>
      <Route exact path="/login" component={Login}/>
      <Route exact path="/signup" component={Signup}/>
      <Route exact path="/" component={Home}/>
    </Switch>
  </Router>
);

export default routes;

Мой index.js выглядит так:

import React from 'react';
import ReactDOM from 'react-dom';
import * as serviceWorker from './serviceWorker';

import { Route, Redirect, Router, Switch } from 'react-router-dom';
import routes from './routes'; 

ReactDOM.render(<Router history={history} routes={routes}/>, 
document.getElementById('root'));

serviceWorker.unregister();

1 Ответ

0 голосов
/ 14 февраля 2019

Передача истории явно не требуется, так как Route передается history неявно в качестве пропеллера. 1

Я бы удалил history реквизит, переданный Router из index.js, а также удалил его из Router в routes.js

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...