我想提交一個表單,我想重新加載當前頁面,這樣表單就會被重繪 ,重繪 后我想在toast中顯示Api回應。當我注釋掉event.preventDefault()時,它在多載后并不顯示toast。當我使用event.preventDefault()并手動重新加載頁面時,吐司作業正常!但我希望它能自動重繪 并顯示吐司。以下是我的代碼,
const handleAddUser = async (event)=> {
event.preventDefault()。
try {
const result = await Http.post(apiEndPoint, {
userRole: role,
userEmail: userEmail,
userPassword: userPassword。
firstName: 名字。
lastName: lastName。
address: 地址。
});
localStorage.setItem("res"/span>, "success")。
localStorage.setItem("success", result.data)。
console.log(" proper", props)。
} catch (ex) {
localStorage.setItem("res"/span>, "err")。
localStorage.setItem("err", ex.response.data) 。
}
};
這是我的useEffect鉤子,
。 useEffect(() =>/span> {
const response = localStorage.getItem("res")。
const result = localStorage.getItem( response)。
if (response && response === "success") {
toast.success(result)。
localStorage.removeItem("res")。
} else if (response && response === "err" ) {
toast.error(result)。
localStorage.removeItem("res")。
}
}, []);
uj5u.com熱心網友回復:
這是因為如果你洗掉了event.preventDefault(),你的頁面在有機會發送請求和設定到localStorage之前就被重新加載了
一個解決方案是保留event.preventDefault(),并將window.location.reload()放在處理程式的末尾,像這樣:
const handleAddUser = async (event)=> {
event.preventDefault()。
try {
const result = await Http.post(apiEndPoint, {
userRole: role,
userEmail: userEmail,
userPassword: userPassword。
firstName: 名字。
lastName: lastName。
address: 地址。
});
localStorage.setItem("res"/span>, "success")。
localStorage.setItem("success", result.data)。
console.log(" proper", props)。
} catch (ex) {
localStorage.setItem("res"/span>, "err")。
localStorage.setItem("err", ex.response.data) 。
}
window.location.reload()。
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/308883.html
標籤:
上一篇:<p>我正在嘗試將HTML表單資料發送到googlesheet。我已經遵循了一些這方面的教程,但無法將表單資料發送到googlesheet上。我成功地部署了google腳本,復制了鏈接并鏈
