【问题标题】:'react-router' does not contain an export named 'browserHistory'. from /src/App.js“react-router”不包含名为“browserHistory”的导出。来自 /src/App.js
【发布时间】:2017-11-22 16:18:35
【问题描述】:

我刚刚开始学习路由部分的反应,但我对我得到的错误有点困惑

编译失败

./src/App.js

31:19-33 'react-router' 不包含名为 '浏览器历史'。

这是我的代码

import React, { Component } from 'react';
import { Router, Route, Link, IndexRoute, hashHistory, browserHistory } from 'react-router'
import logo from './assets/images/logo.svg';
import './App.css';



class App extends Component {
  render() {
    return (
      <Router history={browserHistory} >
        <Route path="/" component={ Home }>
        </Route>
      </Router>
    )
  }
}
const Home = () => <h1>Hello from Home!</h1>
const Address = () => <h1>We are located at 555 Jackson St.</h1>

export default App;

【问题讨论】:

  • browserHistory 是 react-router v3 的一部分。 github.com/ReactTraining/react-router/issues/5263
  • 感谢您的建议,我必须创建 route.jsx 文件吗?或者使用 app.js 代替,因为我看到了一些使用 route.jsx 作为路由的教程
  • 在我看来,单独的路由器文件要干净得多
  • Karim,你能给我一个建议吗?关于 react js 中文件夹结构的正确方法/最佳实践?

标签: javascript reactjs


【解决方案1】:

您需要升级到 v4

您需要按照here 中的建议使用来自'react-router-dom` 的BrowserRouterSwitch,这是您的使用方法:

import {BrowserRouter, Route, Switch} from 'react-router-dom'
class App extends Component {
  render() {
    return (
      <BrowserRouter>
        <div className="App">
          <AppNavbar/>
          <Switch>
            <Route exact path="/" component={Home}/>
            <Route path="/about" component={About}/>
          </Switch>
        </div>
      </BrowserRouter>
    );
  }
}

【讨论】:

    猜你喜欢
    • 2018-09-22
    • 2017-10-31
    • 2021-06-21
    • 2019-06-17
    • 2022-01-12
    • 2017-03-24
    • 2019-11-08
    • 2022-01-21
    相关资源
    最近更新 更多