【发布时间】:2021-04-17 09:59:59
【问题描述】:
我的index.js 有:
ReactDOM.render(
<FirebaseContext.Provider value={new Firebase()}>
<Suspense fallback="loading">
<App/>
</Suspense>
</FirebaseContext.Provider>,
document.getElementById('root')
);
在app.js 内部我正在尝试访问上下文:
export default function App(props) {
console.log("app trying to use firebase");
const {firebase} = useFirebase();
return <div>{firebase && firebase.loggedIn()}</div>
}
FirebaseContext 和 Firebase 类的定义如下:
export const FirebaseContext = createContext({});
export const useFirebase = () => useContext(FirebaseContext);
export default class Firebase {
constructor() {
console.log("firebase intialized")
app.initializeApp(firebaseConfig);
this.auth = app.auth();
}
loggedIn = () => {
return !!this.auth.currentUser;
}
}
FirebaseContext 似乎已正确初始化,因为我在控制台中获得了输出,但我不断收到错误:无法读取未定义的属性“loggedIn”。 为什么我不能使用我的上下文?
【问题讨论】:
-
糟糕,这只是一个错字!应该是
const firebase = useFirebase();
标签: javascript reactjs firebase use-context