#概要
下記のようにコンテキストを定義し、子コンポーネントからコンテキストを呼び出すようにしています。
コンテキストを呼び出す際、2回呼び出されます。
- 1回目は、初期値のデータ。
- 2回目は、データが挿入された後のデータ
実際のコード
interface ContextProps { login:boolean, username:string } export const LoginContext = React.createContext<any>([ {login: false,username: ''} as ContextProps, () => {}, ]); export default function LoginContextProvider(props:any){ const [state, setAuth] = React.useState({ login: false,username: '' }) React.useEffect(()=>{ const userInfo = userPool.getCurrentUser(); console.log('実行') if(userInfo){ // @ts-ignore setAuth({login: true, username: userInfo.username}) }else{ setAuth({login: false, username: ''}) } },[]) // console.log('現在のコンテキストは',state) return( <LoginContext.Provider value={[state, setAuth]}> {props.children} </LoginContext.Provider> ) }
質問
子コンポーネントから1回目のコンテキスト呼び出しで、すでにデータが入っているようにするには、どのようにすれば良いでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/30 03:20