【发布时间】:2021-04-23 03:20:08
【问题描述】:
我希望一旦用户单击提交按钮以重新加载整个“页面”并调用 useEffect 函数。当前的行为是当用户点击提交按钮时,根本没有调用useEffect函数。就好像提交后没有直接重新加载一样。我不知道这是否是由于异步和等待。我给你代码:
使用效果():
useEffect(() => {
console.log('test useEffect');
(async () => {
try {
const value = await AsyncStorage.getItem('authToken_Lust');
if(value !== null) {
const decodedValue = jwt_decode(value);
const current_time = Date.now() / 1000;
if(decodedValue.exp < current_time) {
setMessage('Vous n\'êtes plus connecté(e).')
} else {
setMessage('Vous êtes connecté(e)');
}
}
} catch(err) {
console.log(err);
}
})();
}, []);
用户点击提交后调用的函数代码:
const onSubmit = async () => {
setLoading(true)
await fetch('http://192.168.1.36:3000/api/users/login', {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
email: email,
password: password
})
})
.then((response) => response.json())
.then(async (res) => {
if(res.error) {
setMessage(res.error);
} else {
try {
await AsyncStorage.setItem('authToken_Lust', res.token);
} catch (err) {
console.log(err);
}
}
})
.catch((err) => console.log(err))
.finally(() => setLoading(false));
}
坦克
【问题讨论】:
标签: javascript reactjs typescript react-native use-effect