我有一个庞大的Django网络应用程序,其中的一个模块(“仪表板”)用node和react编写。用户登录由Django模块处理。
用户应该登录到主应用程序才能访问react仪表板,这部分起作用-代码从浏览器获取用户会话,并且仅在有内容的情况下呈现内容。
我现在想在没有会话的情况下将用户重定向到应用主登录页面,但是我不知道如何使用当前结构(和该血腥的v4路由器)进行操作。
我在BrowserRouter组件中使用基本名称来使用相对于django应用程序中的仪表板路径的路由。
这是我为app.jsx的JSX想到的:
<BrowserRouter basename='/en/dashboard'>
{this.state.isAuthenticated ? (
<Paper zDepth={0} style={{ height: '100%', backgroundColor: grey900 }}>
<div style={{height: '100%'}}>
<Header />
<Switch>
<Route exact={true} path='/' component={FirstSection}/>
<Route path='/first' component={FirstSection}/>
<Route path='/second' component={SecondSection}/>
</Switch>
</div>
</Paper>
) : (
<Redirect to="/en/login"/>
)}
</BrowserRouter>
但是,它实际上重定向到en/dashboard/en/login
。我相信我可以从BrowserRouter中删除’basename’属性,并将其添加到每个随后的Route中,但是如果此模块最终变得更大,它将使路由变得更加困难。有一个更好的方法吗?
不幸的是,这是不可能的。如果您使用的是基本名称,则它将在创建href之前添加到每个路径的基本名称中。这history
是createBrowserHistory
在push
和replace
方法中使用以下功能的模块中发生的:
var createHref = function createHref(location) {
return basename + (0, _PathUtils.createPath)(location);
};
使用push
或replace
方法。
您可以在该Redirect.prototype.perform
方法中找到以下代码块:
if (push) {
history.push(to);
} else {
history.replace(to);
}
可以Redirect.js
在react-router
模块中找到以上内容,这是react-router-dom
模块导入然后导出的内容。
做你想做的事,我将创建basename
一个const并将其添加到每条路线的路径前面。
这是不幸的没有一个ignoreBasename
一个选项<Route />
或者<Redirect />
,虽然它是可实现的。
我正在尝试使用react router(版本^1.0.3)做一个简单的重定向到另一个视图的操作,我只是觉得有些累。 我只需要将用法发送到“/login”,就这样。 我能做什么? 控制台中的错误: 未捕获的引用错误:未定义PropType 用我的路线归档
问题内容: 我正在尝试使用react-router( 版本^ 1.0.3 )重定向到另一个视图,这让我很累。 我所需要的只是将使用发送到’/ login’就是这样。 我能做什么 ? 控制台错误: 未捕获的ReferenceError:未定义PropTypes 用我的路线归档 问题答案: 对于简单的答案,您可以使用来自的组件,而不是。有一些方法可以更改JS中的路由,但是似乎您在这里不需要。 要在1.
我有一个云负载平衡器/虚拟服务器/防火墙,它位于一组Quarkus pod前面,几乎就像一个反向代理。流量通过该公共入口进入,并被重新路由到内部网络。 我们使用Azure B2C登录应用程序,当您直接访问pod或内部负载平衡器时,这一功能非常好。 问题是,当使用外部负载平衡器时,重定向uri位于内部网络的上下文中,无法从公共端访问。 有没有办法将指向外部服务器的重定向uri设置为绝对uri而不是相
我一直试图做一个简单的重定向到按钮点击的另一个组件,但由于某种原因,它不起作用。我想重定向到/dashboard并从登录显示AdminServices,如下所示: //索引。js //应用程序。js //登录。js //管理服务。js
问题内容: 如何在angularjs中将用户重定向到绝对URL。 例如:我有一个页面,即我当前的网址(http://example.com/submit),一旦用户单击网页中的某个按钮,他就必须重定向到其他网页,例如(’ http: //google.com ‘)。 我尝试使用 但是没有任何效果。 注意: 不应从Web服务器进行重新部署。它是一个REST API。想要在客户端(使用angularj
我想在单击登录页中的按钮后重定向到主页。但是,当我单击地址栏中的按钮时,主页的路径会显示出来(它重定向到主页)…但它不会呈现与该路径相关的组件。它仍然显示带有主页地址的登录页。因此,我必须刷新页面才能呈现主页。这里有什么问题??? 在我的登录页面中…这是我用于单击按钮的功能。。 在我的索引,js页面...