我試圖在等待 API 呼叫時觸發 Button 的加載狀態。這是我下面的代碼:
export default function JobAddPage() {
const [loading, setLoading] = useState(false);
async function handleSubmit() {
setLoading(true);
try {
// API Calls
} catch (error) {...}
setLoading(false);
}
return (
<LoadingButton loading={loading} onClick={handleSubmit}>Submit</LoadingButton>
);
}
代碼有效,但是當我在setLoading里面添加鉤子時,handleSubmit我收到以下錯誤。
TypeError: Cannot read properties of null (reading 'state')
你不允許在 React 的異步函式中使用 useState 鉤子嗎?我讀過這篇文章:https ://reactjs.org/docs/hooks-rules.html#explanation
我可以讓這段代碼在類組件上作業,看起來相當簡單。
謝謝,
uj5u.com熱心網友回復:
這可能是您加載表單本身的方式。我建議嘗試的是:
將您的 onClick 事件更改為:
onClick{() => handleSubmit()}
您可以控制臺記錄您的值以查看發生了什么。
uj5u.com熱心網友回復:
您發布的代碼很好。但很明顯這不是實際代碼。可以發下缺失的部分嗎?包括您imports的所有內容以及異步方法的全部內容。
我的猜測是useState您呼叫的方法不是從useStateReact 匯出的。
uj5u.com熱心網友回復:
不確定,但我認為你應該把你的放在setLoading(true)里面try
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/476722.html
