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

时间:2018-07-20 02:31:10

标签: javascript reactjs react-router

  

使用React Router 4.2

我的尝试是在单击导航链接时打开新标签,同时重定向到网站首页。

即:导航栏:单击“策略”

enter image description here

尽管下面的代码符合上述要求:这是明智的选择吗? 旨在在Routes.js上学习最佳做法。

   
 //Routes.js
 import HandbookDoc from './policies.pdf'
 ...

 <Route 
   path="/registration/policies" 
   component={() => window.open(`${HandbookDoc}`,'_blank').then(window.location= '/')} 
 />

....

 //Navigation.js (using react-router-bootstrap)
  <NavDropdown eventKey={3} id="formId" title="Registration">
     <LinkContainer to="/registration/financial-aid">
        <MenuItem eventKey={3.1}>Financial Aid</MenuItem>
      </LinkContainer>
      <LinkContainer to="/registration/policies">
        <MenuItem eventKey={3.2}>Policies</MenuItem>
      </LinkContainer>
  </NavDropdown>

1 个答案:

答案 0 :(得分:3)

您无需为要实现的目标创建新路线。您可以像这样向onClick添加MenuItem处理程序:

  <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');
}

请记住要导入您的HandbookDoc