사용자가 전체 "페이지"를 다시로드하고 useEffect 함수를 호출하기 위해 제출 버튼을 클릭하면 싶습니다. 현재 동작은 사용자가 제출 버튼을 클릭 할 때 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));
}
탱크
const [submitted, setSubmitted] = useState(1);
try {
await AsyncStorage.setItem('authToken_Lust', res.token);
setSubmitted(submitted+1);
}
submitted
값 변경 에 응답하도록 변경하십시오.useEffect(() => {
// ...
}, [submitted]);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다