I have a scenario where an async function is called on button click
and the return value is setting the state value. After that, another function is called which needs the previously set value. As it is inside function I am not able to use useEffect
. How to achieve this?
const [user, setUser] = React.useState(null);
const handleSignIn = async () => {
const result = await Google.logInAsync(config);
const { type, idToken } = result;
setUser(result?.user);
if (type === "success") {
AuthService.googleSignIn(idToken)
.then((result) => {
const displayName = `${user?.givenName} ${user?.familyName}`;
signIn({
uid: user.uid,
displayName: displayName,
photoURL: user.photoUrl,
});
})
.catch((error) => {
});
}
};
Here, handleSignIn
is called on the button click and user
state value is set from the result achieved from the Google.logInAsync
. Then AuthService.googleSignIn
is called and when success the user
object is used there but it not available sometimes.