You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React+Firebase使用Context时出现createUser is not a function错误求助

解决React Context传递Firebase Auth函数时的‘createUser is not a function’错误

问题原因

你遇到的createUser is not a function错误,根源在于AuthContext的Provider传递值时多嵌套了一层对象:
在AuthProvider.js中,你把封装好的authValue对象又用{ authValue }包裹后传给了AuthContext.Provider,这导致组件通过useContext获取到的是一个包含authValue属性的外层对象,而非直接拿到createUser、user等属性。

修复方案

1. 修改AuthProvider.js的Provider值

打开AuthProvider.js,找到return中的AuthContext.Provider部分,将value={{ authValue }}改为value={authValue}:

修改前:

return (
  <AuthContext.Provider value={{ authValue }}>
    {children}
  </AuthContext.Provider>
);

修改后:

return (
  <AuthContext.Provider value={authValue}>
    {children}
  </AuthContext.Provider>
);

2. 确认SignUp.js的Context解构逻辑

你的SignUp.js中使用const { createUser, user, loading } = useContext(AuthContext);的解构方式是正确的,只要完成第一步的修改,就能直接获取到createUser函数,无需额外调整。

验证修复

修改完成后,重新运行项目,提交SignUp表单时,createUser函数就能正常调用Firebase的createUserWithEmailAndPassword方法,不会再出现函数未定义的错误。

内容的提问来源于stack exchange,提问作者Supercosition

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 21:22:04