概要
下記のコードにて、描画の際に2回ロードされてしまいます。
2回ロードされる中で、コンポーネント内の処理も2回処理してしまう為、メモ化して処理を抑えたいと考えています。
コード
export const LoginContext = React.createContext<any>([ {login: false,username: ''} as ContextProps, () => {}, ]); export default function LoginContextProvider(props:any){ const [state, setAuth] = React.useState(()=>{ const userInfo = userPool.getCurrentUser(); console.log('実行') if(userInfo){ // @ts-ignore return({login: true, username: userInfo.username}) }else{ return({login: false, username: ''}) } }) return( <LoginContext.Provider value={[state, setAuth]}> {props.children} </LoginContext.Provider> ) }
質問
useStateの部分が2回実行されています。useMemoまたはuseCallbackを利用すべきかと思います。
- useStateをメモする場合、どちらを使用すべきでしょうか?
- 依存する値は、どれにすべきでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。