从索引“ /”开始的React Router Redirect无法返回到先前的网站

时间:2019-06-05 15:35:52

标签: react-router-v4

我们的React应用程序没有'/'索引路由,当点击'/'时,它总是使用以下代码重定向到'/ plan':

import { Route, Switch, Redirect } from 'react-router-dom';

<Switch>
  <Redirect exact from="/" to="/plan" />
  <Route path="/plan" component={PlanPage} />
</Switch>

我们现在的问题是,当用户使用url'google.com'然后访问我们的网站时,他被重定向到/ plan,但是如果用户按下浏览器中的“后退”按钮,它将转到“ /”,然后回到“ / plan”,我们希望用户随后返回“ google.com”。

有人知道实现此目标的方法吗?

1 个答案:

答案 0 :(得分:0)

我发布的那段代码原来可以正常工作,罪魁祸首是我们使用“ connected-react-router”的定制中间件:

import {LOCATION_CHANGE} from 'connected-react-router';

export default store => next => action => {
  const {dispatch} = store;
  if (action.type === LOCATION_CHANGE) {
    dispatch(someAction());
    return next(action);
  }else {
    return next(action);
  }
};

先执行next(action),然后调度我们的操作即可解决此问题:

if (action.type === LOCATION_CHANGE) {
    next(action);
    dispatch(someAction());
  }else {
    return next(action);
  }