微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过登录 React Admin 实现额外的自定义对话框基于服务器响应?

如何解决如何通过登录 React Admin 实现额外的自定义对话框基于服务器响应?

我希望用户能够选择角色作为登录过程的一部分。 在用户给出他的 usernamepassword 后,服务器发回他拥有的角色。 如何在 loginauthProvider 功能结束之前实现一个对话框,用户可以在其中从拥有的角色列表中选择一个角色?

login 函数一个普通的 JavaScript 函数,而不是一个 React 函数组件,所以我不能从中调用钩子(比如 useContext)。

我有两个猜测:

  1. LoginForm 中,将 async 回调函数传递给 login 方法(由 useLogin() 创建。服务器在 {{1} } 函数loginroles,用 user 调用这个回调函数在这个回调函数中,我可以使“选择角色”模式可见。我只是不明白,我怎样才能实现程序一直等到用户点击“选择角色”模式中的 await 按钮,然后才返回一个解决的承诺。在 JS 中可以吗?

  2. 创建一个登录前”表单,接受 submitusername,将其发送到后端,后端返回角色,显示“选择角色”模式,并仅在用户提交角色时调用 password authProvider 函数

我真的很好奇你对此的看法和想法。

解决方法

login 钩子返回的 useLogin 函数除了凭据之外还接受第二个参数:redirectTo。您可以提供一个自定义路由,该路由将显示用于选择角色的专用页面或带有子路由的登录页面,如果您确实需要一个模态,则该子路由会显示您的模态。

一旦用户选择了其角色,您就可以使用 useRedirect 钩子重定向到管理员主页。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。