App
フック付きの機能コンポーネントがあり、子コンポーネントが状態の変化、特に への呼び出しで再レンダリングされるようにしよuseEffect
うとしています。ただし、変更時にコンポーネントが再レンダリングされず、その理由がわかりません。(注: 両方の非同期関数と期待どおりに動作し、正しいデータを取得しています。)<Redirect>
setUserInSystem
userInSystem
userInSystem
getUserInfo
getUserByWorkEmail
const App = (props) => {
const { authState, authData } = props;
const [signedIn, setSignedIn] = useState(false);
const [userInfo, setUserInfo] = useState(undefined);
const [userInSystem, setUserInSystem] = useState(false);
useEffect(() => {
setSignedIn(!(authState !== 'signedIn'));
const fetchUser = async () => {
const data = await getUserInfo();
const userFound = await getUserByWorkEmail(data);
setUserInSystem(userFound);
setUserInfo(data);
};
if (authState === 'signedIn') {
fetchUser();
}
}, [authState]);
return (
<div>
<BrowserRouter>
<Switch>
<Redirect
exact={true}
path="/"
to={userInSystem ? '/dashboard' : '/unverified'}
/>
</Switch>
</BrowserRouter>
</LayoutProvider>
</div>
);
};