React Router V6.4.3中useLoaderData返回undefined问题求助
问题解决:useLoaderData() 返回 undefined 的原因
你的问题出在loader函数的返回值处理上:
在Index.js的data路由配置中,loader函数里调用了AuthProvider()但没有返回这个函数的执行结果:
loader={() => { AuthProvider() }}
这里的箭头函数没有显式返回值,默认返回undefined,导致useLoaderData()拿到的结果自然也是undefined。
修复方案
修改loader的写法,让它返回AuthProvider的执行结果,有两种简洁方式:
- 去掉花括号,利用箭头函数自动返回特性:
loader={() => AuthProvider()}
- 显式添加return语句:
loader={() => { return AuthProvider() }}
修改后,AuthProvider返回的user对象就能被useLoaderData()正确获取到。
另外提醒:当前AuthProvider的命名容易和React Context的Provider组件混淆,建议改成更贴合路由鉴权用途的名字(比如authLoader),避免后续代码维护时产生误解。
内容的提问来源于stack exchange,提问作者HappyKoala
相关产品推荐
相关产品推荐

