react-router将查询附加到 URL

IT技术 javascript reactjs react-router
2021-05-02 22:14:47

React 路由器似乎在我的路由末尾附加了一个查询。该应用程序由运行 express 的节点服务器提供服务。我正在使用最新版本的 react-router "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个回答

取自此链接: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