我在 useEffect 鉤子中有一個函式,它向我的服務器請求一些資料:
useEffect(() => {
const reqFn = async () => {
// req code...
setState(req result)
}
return reqfn()
},[setState])
此外,當用戶單擊按鈕以請求不同的資料時,我需要運行此函式(reqFn 使用 useState 值作為服務器請求的道具)。
我嘗試將 reqFn() 放在 useEffect 之外,但這會使 reqFn 在回圈中運行。我怎樣才能做到這一點?
uj5u.com熱心網友回復:
正如我從您的問題中看到的那樣,您在第一次渲染中需要 api 資料,然后您只需單擊即可處理更新。所以你可以useEffect在沒有狀態回呼的情況下使用并處理其余的onClick
const reqFn = async () => {
// req code...
setState(req result)
}
useEffect(() => {
reqfn()
},[])
<>
...
//Rest of your component
<button onClick={reqFn}>Click</button>
...
</>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/475252.html
標籤:javascript 反应 反应钩子 使用效果
上一篇:用javasacript替換href屬性的多個/所有實體中的某些字符?
下一篇:有條件地分配不同的變數值
