首页 > 其他分享 >关于 ant design pro 登录需要登录两次问题

关于 ant design pro 登录需要登录两次问题

时间:2023-12-30 12:13:14浏览次数:27  
标签:登录 res pro initialState ant location && loginUser

 

时间: 2023.12.30

问题: ant pro 关于用户登录需要点击两次登记才能进入后台问题

出现问题的原因: 在submit 登录提交的时候设置用户状态的语句

setInitialState({

loginUser: loginUser,

});

此时设置完成后,会进入 app文件

onPageChange: () => {

const { location } = history;

// 如果没有登录,重定向到 login

 

if (!initialState?.loginUser && location.pathname !== loginPath) {

history.push(loginPath);

}

},

这里会进行判断 initialState 的值。第一次到这里的时候,此时的值为null ,第二次再登录值就有了

登录成功后我们已经给loginUser赋值了呀,为什么没有值呢? 

官方解释了问题的原因就是众所周知得组件销毁了还在设置状态(setState方法是异步更新的)

所以我的解决方式是:

 

登录提交时:在登录成功后获取到 res.data

if(res.data){

await fetchUserInfo(res.data);

}

 

// 同步设置loginUser 的内容

const fetchUserInfo = async (loginUser: API.LoginUserVO) => {

if (loginUser) {

flushSync(() => {

setInitialState({

loginUser: loginUser,

});

});

}

};

 

 

同步设置setInitialState 的内容,这样第一次登录 onPageChange 在进行判断时,就不会出现initialState 没有值的情况

 

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back

标签:登录,res,pro,initialState,ant,location,&&,loginUser
From: https://www.cnblogs.com/Zarchary/p/17936222.html

相关文章

  • 海飞丝Head & Shoulders 潘婷 Pantene 飘柔 Rejoice
    海飞丝Head&Shoulders 潘婷Pantene  飘柔Rejoice  学生时代大中小学生的最爱海飞丝是宝洁公司的一款洗发精产品。1963年,全球第一支含有活性去屑成分,可有效去除头屑的洗发露诞生,自此,有效去除头屑成为海飞丝深受全球消费者喜爱的最出色的功效。海飞丝品牌1986年进入......
  • Provider的八种提供者
    代码classExampleextendsStatelessWidget{@overrideWidgetbuild(BuildContextcontext){returnScaffold(appBar:AppBar(title:constText("Example"),),body:Center(child:Column(mainAxi......
  • Kernel Memory 入门系列:Semantic Kernel 插件
    KernelMemory入门系列:SemanticKernel插件KernelMemory本身提供了完整的RAG能力,这部分能力如果通过SemanticKernelMemory的话,也是可以实现的,但是整体的管理成本会比较高。因此通过KernelMemory构建知识库管理,然后通过插件的方式,将KernelMemory接入到SemanticKernel......
  • 单点登录
    什么事单点登录?单点登录(SingleSign-On,简称SSO)是一种企业业务整合的解决方案之一,用于实现用户在多个应用系统中的单次登录和跨应用系统的无缝访问。在单点登录系统中,用户只需要在某个应用系统中进行身份认证,就可以访问其他信任的应用系统,而无需再次输入用户名和密码。这种机制可以......
  • 修改vue-element-admin的登录逻辑
    <template><divclass="login-container"><el-formref="loginForm":model="loginForm":rules="loginRules"class="login-form"autocomplete="on"label-position="left"&......
  • Modbus转Profinet,不会编程也能用!轻松快上手!
    Modbus转Profinet,不会编程也能用!轻松快上手!Modbus转Profinet是一种用于工业自动化领域的通信协议转换器,可以将Modbus协议转换为Profinet协议,实现设备之间的数据交换与通信。这个工具的使用非常简单,即使没有编程经验的人也可以轻松上手。即使不会编程的人也可以轻松快速上手使用Mo......
  • 【2023.12.29】修复服务器小记录,重装Proxmox
    半年没碰服务器了,没想到还是挂了,卡在BIOS过不去NUC因为没有主板电池,所以还特地找了下怎么重置,没想到是拔出主板上的黄色保护器,使两个针脚空接和我想象中的不太一样,照理来说应该是针脚对接,才能重置才对因为这样子的话,这个黄色保护套就不能随意丢弃了,感觉这个主板的设计有问题折......
  • 性能集成监控系统exporter+Prometheus+Grafana
    Prometheus是一个时序数据库,存数据exporter是收集器,来收集被监控的数据,想要监控不同的内容,就使用不同的exporter,这个exporter应该放在被测服务器上,再把exporter和Prometheus进行关联。一、环境搭建参考文档 https://blog.csdn.net/xiaoyu_0829/article/details/123253186P......
  • ASP.NET Core 6(.NET 6) Program.cs中使用读取appsettings.json配置文件
    ​ 在ASP.NETCore6(.NET6)中,可以使用Json格式的appsettings.json配置文件来配置应用程序,用于存储应用程序的配置信息,方便我们灵活的配置应用程序。本文主要介绍Program.cs中,使用读取appsettings.json配置文件的方法,以及相关的示例代码。1、通过配置实体类的方式1)配置实体......
  • 【五期李伟平】CCF-B(TFS'23)Consensus Reaching Process With Multiobjective Optimiza
    PengWu,FengenLi,JieZhao,etal.ConsensusReachingProcessWithMultiobjectiveOptimizationforLarge-ScaleGroupDecisionMakingWithCooperativeGame[J].IEEETransactionsonFuzzySystems2023:293-306.  本文针对大规模群体决策(LSGDM)中的共识达成......