React Hooks のルールでは、以下のように定められています。
- フックをループや条件分岐、あるいはネストされた関数内で呼び出してはいけません。
しかし、ある state
の状態を見て他の state
を変更したいときもあると思います。
例)
tsx
1const App = (): JSX.Element => { 2 const [drawerOpen, setDrawerOpen] = useState(false); 3 const [login, setLogin] = useState(false); 4 5 const handleOnClick = (): void => { 6 if (drawerOpen) { 7 setLogin(true); // if 文の中なのでダメ? 8 } else { 9 setLogin(false); // if 文の中なのでダメ? 10 } 11 }; 12 13 return ( 14 <button onClick={(): void => handleOnClick()}>Click!</button> 15 ) 16};
上の例というと、ドロワーが閉じられているかどうかでユーザのログイン状態を変化させるようなときです。
このような場合にはどのようにフックを書けば良いのでしょうか?
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/05 08:18