React路由器将查询附加到URL

4
React路由似乎在我的路由末尾添加查询。该应用程序由运行Express的节点服务器提供服务。我正在使用最新版本的React路由器“1.0.0-rc1”。
例如: http://localhost:8080/#/users?_k=8wsy62 两个问题:
1)为什么会出现这种情况?
2)如何阻止它将查询附加到URL末尾?
以下是我目前拥有的代码:
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个回答

4
从这个链接中获取:http://rackt.github.io/history/stable/HashHistoryCaveats.html HTML5提供了pushState方法和popstate事件,但在旧浏览器中,我们唯一拥有的是URL。因此,在使用哈希历史记录时,您将在查询字符串中看到一个额外的项,它看起来像_k=123abc。这是历史记录在页面加载之间查找window.sessionStorage中的持久状态数据所使用的密钥。
如果您不喜欢此功能,可以检查上面的链接和此链接获得停止此功能的想法:https://github.com/rackt/react-router/issues/1952#issuecomment-140401701

我将路由器历史属性更改为 history={createBrowserHistory({queryKey: false}) 以删除额外的项目。虽然我不确定此时是否需要状态数据。 - salmoally

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接