承诺后如何使用react-router重定向到另一个url?
Posted
技术标签:
【中文标题】承诺后如何使用react-router重定向到另一个url?【英文标题】:How to redirect to another url using react-router after promise? 【发布时间】:2021-05-16 00:10:09 【问题描述】:const submit = e =>
e.preventDefault();
if(homeEmail === "")
alert("Please Provide A Valid E-Mail")
else
db.collection("Home E-Mail").add(
email: homeEmail
).then(() =>
<Redirect to="/thank-you" />
).catch(() =>
alert("Oops! Something Went Wrong, Please Try Again!")
)
setHomeEmail("")
我试过<Redirect />
在.then
之后重定向到“/thank-you”页面,但没有重定向。
我怎样才能使用react-router
做到这一点。如果无法使用react-router
,那么如何使用express
来做到这一点
【问题讨论】:
用history.push('/thank-you')
怎么样
我想这篇文章会回答你的问题:https://***.com/questions/31079081/programmatically-navigate-using-react-router.
是的,使用history.push
的一些命令式导航是有序的,而不是使用Redirect
组件的声明性导航。
@GermaVinsmoke 谢谢!它解决了我的问题!我们如何使用 express 来达到同样的效果?
@Ayush 也许您可以以响应数据的形式发送路由,例如route: '/thank-you
,对于前端 URL,您可以将其保存在某个 config
文件中。 $config.Domain/res.route
。 res.route
显然取决于您如何解析来自 express 的数据
【参考方案1】:
您可以使用history.push('/thank-you')
代替<Redirect />
在您的承诺解决后重定向。
【讨论】:
以上是关于承诺后如何使用react-router重定向到另一个url?的主要内容,如果未能解决你的问题,请参考以下文章
使用 React-Router 4 和 Redux-Promise 重定向用户
在我的 laravel 4 和 angularjs 应用程序中从一条路线重定向到另一条路线
如何在使用 Passport 进行社交身份验证后重定向到正确的客户端路由(react、react-router、express、passport)