React路由器将查询附加到URL

时间:2015-09-28 22:56:49

标签: javascript reactjs react-router

React路由器似乎将查询附加到我的路由末尾。该应用程序由运行express的节点服务器提供服务。我正在使用最新版本的react-router“1.0.0-rc1”

实施例: http://localhost:8080/#/users?_k=8wsy62

两个问题

1)为什么会这样?

2)如何阻止它将查询附加到网址?

这是我到目前为止的代码:

var React = require('react');
var ReactRouter = require('react-router');
var Router = ReactRouter.Router;
var Route = ReactRouter.Route;
var Link = ReactRouter.Link;
var IndexRoute = ReactRouter.IndexRoute;

var App = React.createClass({
    render: function() {
        return (
            <div className="app">
                <h1>App</h1>
                <Link to="/users">Users</Link>
                {this.props.children}
            </div>
        );
    }
});

var Home = React.createClass({
    render: function() {
        return (
            <div className="home">
                <h2>Home</h2>
            </div>
        );
    }
});

var Users = React.createClass({
    render: function() {
        return (
            <div className="users">
                <h2>Users</h2>
            </div>
        );
    }
});

React.render((
    <Router>
        <Route path="/" component={App}>
            <IndexRoute component={Home} />
            <Route path="users" component={Users} />
        </Route>
    </Router>
), document.body);

1 个答案:

答案 0 :(得分:3)

取自此链接:http://rackt.github.io/history/stable/HashHistoryCaveats.html

  

HTML5为我们提供了pushState方法和popstate事件,但是在   旧浏览器我们唯一拥有的是URL。所以,当使用哈希时   历史记录,您将在查询字符串中看到一个看起来更多的项目   类似于_k = 123abc。这是历史用来查找的关键   window.session中的持久状态数据在页面加载之间存储。

如果您不喜欢,可以查看上面的链接以及此链接,了解如何停止此操作:https://github.com/rackt/react-router/issues/1952#issuecomment-140401701