我有一台包含以下路由的路由器交换机:
<Route exact path={['/', '/gg/']}><Spinner /></Route>
<Route path={['/error', '/gg/error']} render={() => <Error />} />该应用程序通过'.../gg/‘加载,并在此微调期间对数据库进行axios调用。如果调用响应是一个错误,则通过'.../ error‘加载错误组件。
我的问题是-在错误页面加载后,当我点击浏览器的后退按钮时,它会返回到'.../gg‘,而不是加载这个应用程序之前的页面。我希望它返回到'... /gg‘之前的页面,并且根本不加载/gg。但我不知道该怎么做。
发布于 2021-09-17 00:28:49
您可以尝试使用来自react-router-dom的重定向组件。将重定向状态设置为false,如果数据库返回错误,则将重定向状态设置为true。
import { Redirect } from 'react-router-dom';
// (...)
function Component(){
const [redirect, setRedirect] = useState(false);
// your fetch that set redirect to true in case of error
if (redirect) return <Redirect to='/gg/error' />;
return (<div>Component</div>);
}https://stackoverflow.com/questions/69210183
复制相似问题