Reactjs 反应路由器<;重定向>;不';t在App.js的顶层工作,它定义了<;路由器>;
MyReactjs 反应路由器<;重定向>;不';t在App.js的顶层工作,它定义了<;路由器>;,reactjs,react-router,react-router-dom,Reactjs,React Router,React Router Dom,My在MyApp.js下的所有组件上都能正常工作,它定义了结构 例如,如果我在下面的某个地方有,如果出现错误,这将正确地重定向到/error: SomeComponent.js 返回( { 错误消息&& } 但是在App.js的顶层,我还需要检查错误并在必要时重定向。这也是我定义核心结构的地方。出于某种原因,此顶层重定向不起作用: App.js 返回( {/*我在路由器内部,所以不应该有任何问题*/} {/*检查错误并按常规重定向*/} { 错误消息&& } {/*组件具有开关/路
在MyApp.js下的所有组件上都能正常工作,它定义了
结构
例如,如果我在下面的某个地方有
,如果出现错误,这将正确地重定向到/error
:
SomeComponent.js
返回(
{
错误消息&&
}
但是在App.js的顶层,我还需要检查错误并在必要时重定向。这也是我定义核心
结构的地方。出于某种原因,此顶层重定向不起作用:
App.js
返回(
{/*我在路由器内部,所以不应该有任何问题*/}
{/*检查错误并按常规重定向*/}
{
错误消息&&
}
{/*组件具有开关/路由*/}
);
知道为什么吗?仅供参考,路由器是从“react Router dom”中定义为
import{BrowserRouter as Router}
你在哪里有/error的路由?你没有任何错误消息,只是没有工作?我有Switch..Route
在一个名为
的组件中,它位于App组件下。也许这就是它实际上不工作的原因。这应该是问题所在,重定向在切换路由之外。
return (<>
{
error.message && <Redirect to="/error" />
}
return (<>
<div className="App">
<Router>
{/* I am inside Router, so there shouldn't be any issues */}
{/* Check for errors and redirect as usual */}
{
error.message && <Redirect to="/error" />
}
<Main /> {/* The <Main> component has Switch/Route */}
</Router>
</div>
);