createContext
const AuthContext
へcreateContext()
を代入して、export
する。
props
にchildren
を渡して、value
にstate
を代入する。
import { useEffect, useState, createContext } from "react";
import { auth } from '../service/firebase';
export const AuthContext = createContext();
export const AuthProvider = ({ children }) => {
const [currentUser, setCurrentUser] = useState(null);
useEffect(() => {
auth.onAuthStateChanged(setCurrentUser);
}, []);
return (
<AuthContext.Provider value={{ currentUser }}>
{children}
</AuthContext.Provider>
)
}
useContext
使用したい場所で、createContext()
を代入した変数をimport
する。その変数をuseContext
の引数に設定する。
import React, { useContext } from 'react'
import { AuthContext } from '../providers/AuthProvider';
import { sinInWithGoogle } from '../service/firebase'
const Header = () => {
const currentUser = useContext(AuthContext);
console.log(currentUser);
return (
<div>
<header>
ヘッダー
<button onClick={sinInWithGoogle}>ログイン</button>
</header>
</div>
)
}
export default Header