簡體   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