当前位置: 首页 > 面试题库 >

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

东门城
2023-03-14
问题内容

我陷入了反应路由器路由。我收到错误消息:

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

这是我的 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'));

我的 App.js 如下所示:

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

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

module.exports = App;

我的 Home.js 如下所示:

var React = require('react');

var Home = React.createClass({

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

});

module.exports = Home;

这是我的项目的层次结构:

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

如您所 料* ,我使用 browserify 构建 app.js 并创建 bundle.js, 并且在
index.html的 脚本标记中使用了 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"
},

因此,当我尝试转到“ http:// localhost:8080 / FluxApp
/
”时,我总是得到相同的错误:“警告:[反应路由器]位置“ / FluxApp
/”与任何路由都不匹配”

我该如何解决?谢谢。


问题答案:

您的路线实际上并未指定的路线/FluxApp

您将需要以下内容:

app.js中

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

App.js中

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


 类似资料:
  • 问题内容: 我对React还是比较陌生,我正在尝试弄清楚如何使React路由器正常工作。我有一个超级简单的测试应用程序,看起来像这样: 当我运行该应用程序时,home组件加载没有任何麻烦,并且当我单击“ Click Me”链接时,URL更改为localhost / about,但是什么也没有发生。如果单击刷新,则会显示“无法获取/关于”。显然我在做错事,但我一直无法弄清楚是什么。我也在使用Webp

  • 说明: callback Gateway::$router 设置Gateway到BusinessWorker路由规则。默认规则是Gateway随机选择一个BusinessWorker进程,然后把当前client_id与这个BusinessWorker进程绑定,以后这个client_id的所有数据(onConnect/onMessage/onClose事件)都交给这个绑定的BusinessWorke

  • 问题内容: 我的目标是让http:// mydomain / route1 渲染React组件Component1和http:// mydomain / route2 渲染Component2。因此,我认为编写如下的路由是很自然的: http:// mydomain / route1可以正常工作,但http:// mydomain / route2却呈现Component1。 然后,我阅读了此问题

  • 我正在用WebStorm做一个项目。昨天我安装了nvm&nodist来管理多个版本的Node。今天开始我的项目(在yarn start和npm start上)时,我遇到了这个错误。 抱歉,Nodist有问题。无法解析节点版本规范%s:%s 11.13.0找不到任何匹配的版本 我已经尝试修复重新安装的节点11版本,但错误仍然在这里。 有人能帮帮我吗?

  • React + React-router-dom v6 我目前编写的路由表为: 当我在浏览器地址栏输入http:// xxx.xxx.xxx.xxx: 3000/p/aaa/bbb,并不能匹配到'/p/:contentId/:premissionId', 请问这是咋回事?

  • 问题内容: 我正在React-Router中设置一些嵌套路由(我正在使用v0.11.6),但是每当我尝试访问其中一个嵌套路由时,都会触发父路由。 我的路线如下所示: 如果我将路线折叠起来,它看起来像: 它工作正常。之所以要嵌套,是因为我将在“仪表盘”下有多个子代,并希望它们在URL中都带有前缀。 问题答案: 配置与路由无关(尽管有名称),而是与路径驱动的布局有关。 因此,使用此配置: 就是说要嵌入