在我的反应管理应用程序中,当我进入某些部分时,我看到默认加载页面,但我无法理解原因。当我在重定向到 http://localhost:3000/#/login 之前转到 http://localhost:3000/#/ 时,以及当我转到另一个可用部分(如果我未登录)时,它似乎会出现。奇怪的是,我有另一个公共页面,但它加载得很快,没有显示加载页面(这就是说这不应该是公共页面的问题)。
这是显示的默认加载页面(顶部有一个加载微调器,但在屏幕截图中位于开头):
这是 Firefox Profiler,我希望它是可以理解的。
可能是什么问题?我该如何调试它?
我认为私有路由受到某种逻辑的保护,该逻辑从后端对用户进行身份验证,在允许他进入该页面之前导致加载屏幕,如果他未经过身份验证,则该逻辑会将用户重定向到登录页面并公开页面,不需要验证用户逻辑,因此那里没有加载屏幕。
正如 Bilal 所猜测的,react-admin 必须先从您的 authProvider 获取一些信息,然后才能呈现 Admin。
requireAuth
设置为true
,它会呼叫authProvider.checkAuth()
authProvider.getPermissions()
这是显示侧面菜单所必需的(因为某些资源可能只有在具有所需权限的情况下才可见),并声明到路由器的路由。
请随意查看代码以了解完整的逻辑。
正如您在其中所看到的,即使
status
仍然等于 'loading'
,某些路线仍然可以访问:customRoutesWithoutLayout
(即不使用默认布局呈现的路线,因此不使用侧面菜单)。
noLayout
的路线。