I have a function (loadJwt) I want to get called once upon phone startup to load something from the phone's keychain:
const [user, setUser] = useState<User | null>(null);
const [loading, setLoading] = useState(true);
const loadJwt = useCallback(async () => {
try {
const value = await Keychain.getGenericPassword();
if (value) {
const phone_number = value.username;
const jwt = JSON.parse(value.password);
setUser({
phoneNumber: phone_number,
jwt: {
accessToken: jwt.accessToken,
refreshToken: jwt.refreshToken,
}
});
}
}
catch (error) {
console.error(`Keychain error: ${error}`);
setUser(null);
} finally {
setLoading(false);
}
}, []);
useEffect(() => {
loadJwt();
}, [loadJwt]);
Does useEffect need to have a dependency on this callback or could its dependency array just be empty?