反应路由器没有更新浏览器的位置栏

时间:2016-01-19 23:52:54

标签: react-router

我在这里遇到了一个奇怪的问题,我使用的是简单的路由器设置:

<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无法更新浏览器的位置栏...虽然没有找出原因

1 个答案:

答案 0 :(得分:0)

可能是因为您正在设置路由器:

location='history'

尝试删除该行,同时JSBin或plnkr也会有帮助,所以我可以玩它!

查看此处的文档并按照基本设置进行操作:Check out the bottom of the second example!