javascript - React 路由组件类型错误 : history is undefined

标签 javascript reactjs react-router

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

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

Complete version in JSFiddle

以上导致类型错误:

TypeError: history is undefined

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

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

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

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

我是不是用错了组件?我错过了什么?

最佳答案

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

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

关于javascript - React 路由组件类型错误 : history is undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42587220/

相关文章:

javascript - MVC 5 捆绑文件显示为挂起

javascript - 如何将时间格式化为 dayjs 对象?

javascript - React 组件返回时实际发生了什么?

reactjs - React 路由器 url 参数未存储在 props 中

javascript - 如何在页面重新加载时清除 react-router 中的 location.state?

javascript - 如何在 V8 中将对象传递给 JavaScript 回调

javascript - 将 imagegrabscreen php 函数包含到按钮 onclick 中,无需刷新页面

javascript - 如何在 HandleBars 模板中执行 IF 逻辑?

javascript - React 中的 RXJS 没有主题

reactjs - 将 React 应用程序部署到 IONOS - 页面刷新时出现 404