我们的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”。
有人知道实现此目标的方法吗?
答案 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);
}