繁体   English   中英

反应路由器不工作 - 没有错误

[英]React router not working - no errors

import React, { Component } from 'react';
import './App.css';
var ReactRouter = require('react-router');
var Router  = ReactRouter.Router;
var Route = ReactRouter.Route;
var Navigation = ReactRouter.Navigation;

var StorePicker = React.createClass({
render : function() {
return (
  <form className="store-selector">
    <h2>Please Enter A Store</h2>
    </form>
)
}

});

var routes = (
<Router>
<Route path="/" component={StorePicker}/>
<Route path="store" component={App}/>
</Router>
)
export default routes;

我正在尝试使用反应路由器。 此代码不起作用。 它不会给出任何错误。 但它给出了两个警告。


警告:失败的道具类型:道具historyRouter标记为 required ,但其值为undefined 在路由器


React.createElement: type is invalid -- 期望字符串(对于内置组件)或类/函数(对于复合组件)但得到:对象。

对于警告:
(警告:失败的道具类型:道具历史在路由器中标记为必需,但其值未定义。在路由器中)

您缺少路由器的历史定义尝试:

<Router history={}>
  <Route path="/" component={Home} />
</Router>

注意:您必须使用 React 路由器将所选的历史记录类型添加到您的导入中,因此如果您选择添加browserHistory,您的导入将如下所示:

import { , Router, Route } from 'react-router'
           ^---added as a named import

不同选项的简要说明:

browserHistory :以路径“/”开头的完整 url 路径为基础。 因此,如果您的 SPA 位于www.myapp.com ,则默认情况下根路径将与www.myapp.com/ 所以如果你想要一条到www.myapp.com/blog的路由,你需要定义一个路由路径“ /blog ”。

hasHistory :做同样的事情,但根从 url 中找到的第一个#字符开始: example.com/#/some/path /some/path # /some/path将对应于: /some/path

createMemoryHistory :用于测试和服务器渲染。 此选项不会读取操作地址栏。

查看: React Router Histories了解更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM