React路由器4附加额外的查询参数

时间:2017-09-16 15:20:34

标签: javascript reactjs react-router react-router-v4

我的问题类似于React router appending query to URL,但我正在使用路由器4与路由器和路由器。在我的情况下,如何排除从历史记录追加的额外查询参数?

first = str(self.lineEdit_c_first.text())

我的索引文件

  render(){
return(
  <div>
    <Header/>
    <Switch>
      <Route exact path="/" render={(props) => (<Home passDealsToRoute ={this.dealsCallBack} {...props}/>)}/>
      <Route exact path="/mall/:id/:store_id/:deal_id" render={(props) => (<MallDetail deals ={this.deals} {...props}/>)}/>
      <Route exact path="/mall/:id/:store_id" render={(props) => (<MallDetail deals ={this.deals} {...props}/>)}/>
      <Route exact path="/mall/:id" render={(props) => (<MallDetail deals ={this.deals} {...props}/>)}/>
      <Route path="/home/:location" render={(props) => (<Home passDealsToRoute ={this.dealsCallBack} {...props}/>)} />
      <Route exact path="/about" component={About}/>
    </Switch>
    <Footer/>
  </div>
);}} export default withRouter(Root);

2 个答案:

答案 0 :(得分:1)

返回您使用index.js的文件(我猜<BrowserHistory />)并添加以下内容:

  

请注意,您将从“历史记录”包中获取createBrowserHistory而不是“react-router-dom”   此外,“queryKey:false”就是答案。

import { BrowserRouter } from 'react-router-dom';
import { createBrowserHistory } from 'history';

const history = createBrowserHistory({queryKey: false});
//.....

<BrowserRouter history={history}>
  // Your routes here ...
</BrowserRouter >

注意:

您可以通过删除确切的&amp ;;来更好地整理您的路线因为您正在利用<Switch />组件,所以撤消所有路线。

答案 1 :(得分:0)

实际原因不是因为路由器反应,而是因为ajax api呼叫。我通过在我的ajax呼叫中设置'cache':true解决了这个问题。这解决了我的问题.Abdennour发布的答案是正确的,以防万一反应路由器。