【问题标题】:React Route Component TypeError: history is undefinedReact Route Component TypeError:历史未定义
【发布时间】:2017-03-03 19:44:55
【问题描述】:

我正在尝试使用 React Route 组件来指定我的路由配置。这基本上就是我正在做的事情:

ReactDOM.render(
    <ReactRouter.Router>
        <ReactRouter.Route path="/" component={App}>
        </ReactRouter.Route>
    </ReactRouter.Router>,
    document.querySelector("#container")
);

Complete version in JSFiddle

以上导致类型错误:

TypeError: 历史未定义

所有内容都在text/babel 脚本标签内,该标签位于html 文档的body 中。我通过将以下脚本标记添加到文档的head 来导入ReactRouter

<script src="https://npmcdn.com/react-router/umd/ReactRouter.js"></script>

我的应用程序在不使用ReactRouter 时运行良好。也就是说,以下代码不会导致类型错误:

ReactDOM.render(
    <App/>,
    document.querySelector("#container")
);

我是否使用了错误的组件?我错过了什么?

【问题讨论】:

  • 你能把你的代码贴在 JSFiddle 上吗?或者尝试使用react router的非缩小版,可能错误会更有意义
  • @Nomad,我添加了一个指向 JSFiddle 的链接。现在我使用的是非缩小版本的反应路由器,错误说历史是未定义的。请参阅我的问题的更新版本。感谢您的评论。
  • 您需要在&lt;ReactRouter.Router&gt; 中将历史记录作为道具传递。见这里:github.com/reactjs/react-router-tutorial/tree/master/lessons/…

标签: javascript reactjs react-router


【解决方案1】:

您必须为ReactRouter 提供history,它可以是browserHistoryhashHistory,具体取决于您的结构。在documentation中查看更多信息

ReactDOM.render(
    <ReactRouter.Router history={ReactRouter.hashHistory}>
        <ReactRouter.Route path="/" component={App}>
        </ReactRouter.Route>
    </ReactRouter.Router>,
    document.querySelector("#container")
);

【讨论】:

    【解决方案2】:

    尝试添加&lt;ReactRouter.Router history={ReactRouter.hashHistory}&gt;

    【讨论】:

      猜你喜欢
      • 2019-02-06
      • 2022-01-05
      • 2021-07-18
      • 2018-02-04
      • 2017-08-08
      • 2020-04-01
      • 2019-07-25
      • 1970-01-01
      • 2018-05-14
      相关资源
      最近更新 更多