react-router位置与任何路由都不匹配

Sed*_*URT 9 javascript reactjs react-router

我被反应路由器路由困住了.我收到错误:

Warning: [react-router] Location "/FluxApp/" did not match any routes
Run Code Online (Sandbox Code Playgroud)

这是我的app.js:

var React = require('react');
var ReactDOM = require('react-dom');
var Router = require('react-router').Router;
var Route = require('react-router').Route;
var IndexRoute = require('react-router').IndexRoute;
var browserHistory = require('react-router').browserHistory;

var App = require('./views/App');
var Home = require('./views/Home');


var Routes = (<Router history={browserHistory}>
               <Route path="/" component={App}>
                 <IndexRoute component={Home} />
               </Route>
              </Router>);

ReactDOM.render(Routes, document.getElementById('content'));
Run Code Online (Sandbox Code Playgroud)

我的App.js如下:

var React = require('react');
var RouteHandler = require('react-router').RouteHandler;

var App = React.createClass({
  render: function() {
     return (
        <RouteHandler />
     );
  }
});

module.exports = App;
Run Code Online (Sandbox Code Playgroud)

我的Home.js如下:

var React = require('react');

var Home = React.createClass({

  render: function() {
    return (
      <div>
        Home
      </div>
    );
  }

});

module.exports = Home;
Run Code Online (Sandbox Code Playgroud)

这是我的项目的hieararchy:

/FluxApp
   |...
   +/js
   .  |
   .  +/actions
   .  +/constants
   .  +/dispatcher
   .  +/stores
   .  +/views
   .  .     |
   .  .     App.js
   .  .     Home.js
   .  app.js
   .
   index.html
Run Code Online (Sandbox Code Playgroud)

正如您猜测的那样,我使用browserify构建app.js并创建bundle.js,我在index.html的 script标签中使用了bundle.js

以下是我在项目中使用的所有版本.

"dependencies": {
   "classnames": "^2.2.3",
   "flux": "^2.1.1",
   "keymirror": "^0.1.1",
   "object-assign": "^1.0.0",
   "react": "^0.14.6",
   "react-dom": "^0.14.6",
   "react-router": "^2.0.0-rc5"
},
"devDependencies": {
   "browserify": "^6.2.0",
   "envify": "^3.0.0",
   "jest-cli": "^0.4.3",
   "reactify": "^0.15.2",
   "uglify-js": "~2.4.15",
   "watchify": "^2.1.1"
},
Run Code Online (Sandbox Code Playgroud)

所以,当我尝试去" http:// localhost:8080/FluxApp / "时,我总是得到同样的错误:"警告:[react-router]位置"/ FluxApp /"与任何路线都不匹配"

我怎么解决这个问题?谢谢.

N3d*_*st4 7

您的路线实际上没有指定路线/FluxApp.

你需要这样的东西:

app.js

var Routes = (<Router history={browserHistory}>
               <Route path="/FluxApp/" component={App}>
                <IndexRoute component={Home} />
               </Route>
              </Router>);
Run Code Online (Sandbox Code Playgroud)

App.js中

var App = React.createClass({
  render: function() {
    return this.props.children;
  }
});
Run Code Online (Sandbox Code Playgroud)

  • 如果我们更改根文件夹名称会发生​​什么?我们也必须改变路径.我们能预防吗? (2认同)