javascript - React-router 2.0 不路由

标签 javascript reactjs react-router

我有这个简单的代码,但不起作用。我从react-router项目页面获取了它并稍微修改了一下,使其看起来更好一些。

设置

我有几个非常简单的 react 组件:

var IndexPage = React.createClass({
    render(){
        return (<h1>Index Page</h1>);
    }
});
var AboutPage = React.createClass({
    render(){
        return (<h1>About page</h1>);
    }
});
var NotFoundPage = React.createClass({
    render(){
        return (<h1>Not found page</h1>);
    }
});

我还设置了 react 路由器:

var ReactRouter = require('react-router');
var Router = ReactRouter.Router;
var Route = ReactRouter.Route;
var BrowserHistory = ReactRouter.browserHistory;
var Render = ReactDOM.render;

这就是我使用 React Router 2.0 的方式。

Render((
  <Router history={BrowserHistory}>
    <Route path="/" component={IndexPage}>
      <Route path="about" component={AboutPage}/>
      <Route path="*" component={NotFoundPage}/>
    </Route>
  </Router>
), document.body)

我使用 BrowserHistory(不是 HashHistory)来避免 url 中出现哈希。

我的服务器是在 8080 端口上的 IIS 10 (Windows 10) 下启动的。

问题

http://localhost:8080/ 

转到 IndexPage 组件。这是正确的。

http://localhost:8080/about

转到 IIS 404 错误页面。在这种情况下路由不起作用

http://localhost:8080/ttt

再次转到 IIS 404 错误页面。

因此路由器看不到/之后的嵌套路径。而且它甚至不关心它们是否正确。

什么会导致这种奇怪的行为?

提前致谢!

更新

我发现下一个字符串可以解决客户端路由的问题:

{this.props.children}

这是固定代码:

var IndexPage = React.createClass({
    render(){

        console.log('index page render');

        return (<div>
                    <h1>Index Page</h1>
                    <Link to={ '/about' }>about</Link>
                    {this.props.children}
                </div>);
    }
});

最佳答案

您的服务器是否配置为将所有应用程序路径映射到您的index.html?如果您的服务器将所有路径映射到您的索引文件,您永远不会得到 IIS 404,因为它总是会传递这个路径。

关于javascript - React-router 2.0 不路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35390029/

相关文章:

reactjs - 如何处理 react + react 路由器+通量中的查询参数

Javascript - 尝试将函数分配给变量

javascript - 如何在 Highcharts 中鼠标悬停时显示数据标签?

javascript - 您是在 ASP.NET MVC View 中编写 JavaScript 还是在单独的 JavaScript 文件中?

javascript - 子组件可以访问其包含组件的方法吗?

javascript - webpack:如何将所有 scss 文件捆绑到一个 main.css 文件中

javascript - 如果条件始终返回 false(省略号)

reactjs - 将样式化组件样式应用于第三方组件

reactjs - 如何使用reactjs和redux处理导航

reactjs - 基于角色的 react 路由器