我使用的是react dom v6路由。
所以我做了一个这样的结构:
<Route element={<AuthenticationRoute/>}>
<Route path="/login/" element={<LoginPage />} />
<Route path="/login/:theme" element={<LoginPage />} />
<Route>
LoginPage有一个表单,但在此之前,应用需要检查用户是否有一些存储空间,如果它已经被重定向,然后它应该呈现LoginPage。
我们需要做大量的重定向,所有的条件都存储在LoginPage中,当它试图加载页面时会引起一些麻烦。所以我需要更改和移动条件/函数。
现在,组件AuthenticationRoute
是一个 Package 器,在满足以下条件时进行重定向:一米一米一x一米二米一x
在某个时候,我需要重定向到另一个网站,它会返回到相同的路径(login/...)
,哈希值如下:#state=redirect_uri=value¶m=value.
此哈希包含所有查询字符串,我需要它们来呈现LoginPage
。
这里有一个函数可以更改#state=redirect_uri=value¶m=value to ?redirect_uri=value¶m=value
但我需要重定向到login/{theme}/with search:重定向URI =值&参数=值
我试着去做
x一个一个一个一个x一个一个二个x
但是它给了我一个最大深度错误。我知道我应该返回LoginPage,但是我需要查询字符串才能工作。如果我使用pathName "/",它会正确呈现,但是我需要/:theme/path来应用主题。1-我应该使用window.location.assign
或其他方法吗?2-如果我需要以类似于(userHasStorage、userDidAcceptTheTerms等)的频率进行重定向,我做得正确吗?我应该创建另一个页面或路线吗?
TLDR:
1.我想进入页面:https://url.com/login/purpleTheme/#state=queryparam=1234&redirect_uri=1234
1.组件AuthenticationRoute
应使用如下queryparam条件性地重定向到login(outlet):https://url.com/login/purpleTheme/?queryparam=1234&redirect_uri=1234
1条答案
按热度按时间ccgok5k51#
看起来主要问题是
AuthenticationRoute
组件无条件地从"/login/*"
路径导航到"/login/*"
路径,"/login/*"
路径重新运行if (state)
块并重新呈现Navigate
组件。您需要收集所需的信息,并 * 有条件地 * 发出命令性重定向到
"/login/*"
路径,并添加适当的queryString参数。