我的问题类似于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);
答案 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发布的答案是正确的,以防万一反应路由器。