Javascript React Router-打开新选项卡上的链接并重定向到主页

Javascript React Router-打开新选项卡上的链接并重定向到主页,javascript,reactjs,react-router,Javascript,Reactjs,React Router,使用React路由器4.2 我的尝试是在单击导航链接时打开一个新选项卡,同时重定向到站点主页 ie:导航栏:单击策略 尽管下面的代码与上面的要求一样:这是一种明智的方法吗? 旨在学习Routes.js上的最佳实践 //Routes.js 从“./policies.pdf”导入HandbookDoc ... window.open(`${HandbookDoc}',`u blank')。然后(window.location='/')} /> //Navigation.js(使用react路由

使用React路由器4.2

我的尝试是在单击导航链接时打开一个新选项卡,同时重定向到站点主页

ie:导航栏:单击策略

尽管下面的代码与上面的要求一样:这是一种明智的方法吗? 旨在学习Routes.js上的最佳实践

//Routes.js
从“./policies.pdf”导入HandbookDoc
...
window.open(`${HandbookDoc}',`u blank')。然后(window.location='/')}
/>

//Navigation.js(使用react路由器引导)
财政援助
政策

你不需要为你想要实现的目标创建新的路线。您可以向
菜单项添加
onClick
处理程序,如下所示:

  <NavDropdown eventKey={3} id="formId" title="Registration">
     <LinkContainer to="/registration/financial-aid">
        <MenuItem eventKey={3.1}>Financial Aid</MenuItem>
      </LinkContainer>
      <LinkContainer 
        to="/">
        <MenuItem onClick={this.handlePoliciesClick} eventKey={3.2}>Policies</MenuItem>
      </LinkContainer>
  </NavDropdown>

请记住导入您的
手册文档

路径
/registration/policies
是否存在于此处?我只需在
policies
上添加一个onClick侦听器,然后在那里执行您需要的操作。
routes.js
上设置的路径与
navigation.js
上传递的路径匹配。如何在这种情况下设置onClick?在
MenuItem
上添加一个包含
策略的onClick处理程序。在那里,您可以执行
window.open()
,以及
browserHistory.push('/')
。介意给我一个答案吗?我还没有玩太多的
browserHistory.push()
非常感谢你,通过代码将你的解释/建议形象化在我的脑海中是有意义的。唯一的问题是
browserHistory
没有重定向到主页…您是否已删除
LinkContainer
中的
to
属性?我已删除。事实上,我一起删除了LinkContainer,因为他们的api上需要
to
,否则会抛出一个错误。奇怪。browserHistory是否将您重定向到其他地方?或者它根本就不起作用?它停留在同一页上。情景2。如果我离开
到=“/”
它会将我重定向回家。这意味着BrowserHistory不会单独触发。但是“在新选项卡上打开”单击处理程序可以工作。
  <NavDropdown eventKey={3} id="formId" title="Registration">
     <LinkContainer to="/registration/financial-aid">
        <MenuItem eventKey={3.1}>Financial Aid</MenuItem>
      </LinkContainer>
      <LinkContainer 
        to="/">
        <MenuItem onClick={this.handlePoliciesClick} eventKey={3.2}>Policies</MenuItem>
      </LinkContainer>
  </NavDropdown>
handlePoliciesClick = () => {
  window.open(HandbookDoc, '_blank');
}