我在这里遇到了一个奇怪的问题,我使用的是简单的路由器设置:
<Provider store={store}>
<div>
<Router
location='history'
history={createHistory({queryKey: false})}
onUpdate={() => window.scrollTo(0, 0)}>
<Route path="/" component={Main}>
<Route path="datacenter/:name" component={App} />
<Route path="operation" component={OperationComponent} />
</Route>
</Router>
<DevTools />
</div>
</Provider>
我有一个操纵历史记录的导航列表:
<SelectableList subheader='OPERATIONS' valueLink={{value: this.props.location.pathname, requestChange: this.operationChanged}}>
<ListItem primaryText='Checks' value='/operation' onTouchTap={this.handleClose}/>
</SelectableList>
带动作回调:
operationChanged = (evt, val) => {
this.props.history.push(val);
};
问题是导航工作正常,当我单击其中一个列表项时,我按预期导航到路径,但是,所选路径未更新到浏览器的地址栏...
有什么想法吗?
提前致谢
更新*********
事实证明,这是一个与webpack-dev-server相关的问题,在使用这个开发工具时,react-router无法更新浏览器的位置栏...虽然没有找出原因
答案 0 :(得分:0)
可能是因为您正在设置路由器:
location='history'
尝试删除该行,同时JSBin或plnkr也会有帮助,所以我可以玩它!
查看此处的文档并按照基本设置进行操作:Check out the bottom of the second example!