承诺后如何使用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("")
    

我试过&lt;Redirect /&gt;.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.routeres.route 显然取决于您如何解析来自 express 的数据 【参考方案1】:

您可以使用history.push('/thank-you') 代替&lt;Redirect /&gt; 在您的承诺解决后重定向。

【讨论】:

以上是关于承诺后如何使用react-router重定向到另一个url?的主要内容,如果未能解决你的问题,请参考以下文章

使用 React-Router 4 和 Redux-Promise 重定向用户

如何在 Spring 中重定向到另一台主机

在我的 laravel 4 和 angularjs 应用程序中从一条路线重定向到另一条路线

如何在使用 Passport 进行社交身份验证后重定向到正确的客户端路由(react、react-router、express、passport)

子域重定向到另一台服务器

反应重定向到另一个页面不起作用[重复]