[英]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;
我正在嘗試使用反應路由器。 此代碼不起作用。 它不會給出任何錯誤。 但它給出了兩個警告。
警告:失敗的道具類型:道具history
在Router
標記為 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.