React-router 在添加历史记录后不会渲染组件
React-router doesn't render component after adding history
我正在使用 React 和 React Router,我有一个非常简单的情况:
var Router = window.ReactRouter.Router;
var useRouterHistory = window.ReactRouter.useRouterHistory;
var Route = window.ReactRouter.Route;
var createHistory = window.History.createHistory;
const appHistory = useRouterHistory(createHistory)({ queryKey: false });
// my component ...
ReactDOM.render((
<Router history={appHistory}>
<Route path="/" component={MyTable}>
</Route>
</Router>
), document.getElementById('table-wrapper'));
但是,这不会呈现 MyTable 组件。如果我从路由器组件中删除"history={appHistory}"部分,那么它会呈现 MyTable 组件。我还尝试使用默认浏览器路由器的历史,同样的事情 - 不适用于历史属性,没有它就可以工作。
我做错了什么?
编辑:控制台中没有错误消息,我使用的是 React 的非缩小开发版本。
确保你的路径是正确的!例如:如果您将 path 设置为 - path="/"
并且您的域是example.com
的 - 并且您正在使用 react on example.com/someanothepath
- 您的路径将无法正常工作。
这是jsffidle上的例子
var
useRouterHistory = ReactRouter.useRouterHistory,
createHistory = History.createHistory,
Router = ReactRouter.Router,
Route = ReactRouter.Route;
const appHistory = useRouterHistory(createHistory)({ queryKey: false });
var MyTable = React.createClass({
render: function() {
return (
<div className="test">
table
</div>
)
}
});
ReactDOM.render((
<Router history={appHistory}>
<Route path="/_display" component={MyTable}>
</Route>
</Router>
), document.getElementById('table-wrapper'));
如您所见 - jsfiddle 路径/_display
如果您在此处设置任何其他字符串,它将不起作用。
这里可能有一些事情,但我会尝试createHashHistory
而不是createHistory
。
const Router = window.ReactRouter.Router;
const useRouterHistory = window.ReactRouter.useRouterHistory;
const Route = window.ReactRouter.Route;
const createHashHistory = window.History.createHashHistory;
const appHistory = useRouterHistory(createHashHistory)({ queryKey: false });
// my component ...
ReactDOM.render((
<Router history={appHistory}>
<Route path="/" component={MyTable} />
</Router>
), document.getElementById('table-wrapper'));
相关文章:
- 如何定义组件添加到DataItem的顺序
- React:向现有组件添加道具
- 向React中的高阶组件添加方法
- 在 React 中向组件添加新输入并跟踪状态
- Angular2 - 尝试将组件从父组件添加到子组件中
- extjs4 - 将自定义组件添加到容器
- 将react组件添加到contenteditable或innerhtml
- 反应多个组件添加项目
- 如何向 ReactJS 组件添加多个类
- 可以't将组件添加到dojox/layout/GridContainer
- KnockoutJs组件-添加默认类
- 如何使用React.js而不是JQuery.js克隆React组件(添加到其他地方)
- 向动态创建的组件添加事件绑定
- 如何在rteplugins下为richtext组件添加图像插件
- 为每个reactJS组件添加组件
- 如何向父窗口的组件添加字符
- React:如何给库中的组件添加一个props
- Highcharts提示?如何向hiccharts DOM组件添加类或id ?
- 用于向组件添加多个订阅的React mixin
- 如何在vue.js中为动态组件添加道具