更改URL参数时有条件地限制重定向

时间:2018-12-28 13:38:55

标签: javascript reactjs react-router

我想通过根据用户的登录凭据修改URL来限制某些用户将其路由到页面“ x”。因此,我目前能够识别这些用户,但只想限制他们对页面“ x”的访问。另外,如果他们尝试输入任何其他参数,则必须将其重定向到当前页面。

示例

实际网址 null

修改的URL(受限制的) www.stackoverflow.com

用户必须重定向到 www.stackoverflow.com/x/

我正在使用React-Router 4 我应该怎么做?

1 个答案:

答案 0 :(得分:0)

只需将另一条路线推入您的路由器历史记录:

假设endponint可能包含一个可供某些用户访问的视图,而另一些用户则基于ACL进行重定向的示例:

在路由器中(我通常在其中放置ACL条件):

<Route exact path="/myRoute" render={(props) => <MyComponent {...props} mustRedirect={this.myBoolCondition()} />} />

在目标MyComponent中:

componentWillMount() {
    if (this.props.mustRedirect) {
      this.props.history.push('/');
    }
  }