wake-up-neo.com

der Standort des Reakt-Routers stimmte mit keiner Route überein

Ich stecke beim Reakt-Router-Routing fest. Ich erhalte den Fehler: 

Warning: [react-router] Location "/FluxApp/" did not match any routes

Das ist mein 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'));

Meine App.js wie folgt:

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

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

module.exports = App;

Meine Home.js wie folgt:

var React = require('react');

var Home = React.createClass({

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

});

module.exports = Home;

Hier ist die Hieararchie meines Projekts:

/FluxApp
   |...
   +/js
   .  |
   .  +/actions
   .  +/constants
   .  +/dispatcher
   .  +/stores
   .  +/views
   .  .     |
   .  .     App.js
   .  .     Home.js
   .  app.js
   .
   index.html

Wie Sie sich vorstellen, baue ich app.js mit browserify und erstelle bundle.js und verwende diese bundle.js im script-Tag in index.html.

Hier sind Versionen, die alles in Project verwenden.

"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"
},

Also, wenn ich versuche zu " http: // localhost: 8080/FluxApp/ " zu gehen, erhalte ich immer die gleiche Fehlermeldung: "Warnung: [Reaktiver-Router] -Standort"/FluxApp/"keine Routen"

Wie kann ich das lösen? Danke.

8
Sedat KURT

Ihre Routen geben eigentlich keine Route für /FluxApp an.

Sie brauchen so etwas wie:

in app.js

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

in App.js

var App = React.createClass({
  render: function() {
    return this.props.children;
  }
});
7
N3dst4

Reagieren Sie den Router v4 mit der Webpack-Implementierung wie folgt

import { BrowserRouter as Router, Route } from 'react-router-dom';

ReactDOM.render(
  <Router>
    <div>
      <Route exact path="/" render={() => <h1>main page</h1>} />
      <Route path="/about" render={() => <h1>about page</h1>} />
      <Route path="/contact" render={() => <h1>contact page</h1>} />
    </div>
  </Router>,
  document.getElementById('root'));
  
  //webpack  build  script change add --history-api-fallback in package.json file
  "scripts": {
    "start": "webpack-dev-server --history-api-fallback"
    }

Führen Sie nun folgenden Befehl auf dem Terminal aus: npm start 

0