我看到了一個帶有以下代碼的 React 培訓視頻:
const [darkTheme, setDarkTheme] = useState(true)
function toggleTheme() {
setDarkTheme(prevDarkTheme => !prevDarkTheme)
}
在最后一行中,將什么作為引數傳遞給 setDarkTheme 函式?我認為一個函式需要一個單一的值,所以無法判斷它是否是一個在傳遞之前評估的箭頭函式,或者是什么。
uj5u.com熱心網友回復:
setDarkTheme(prevDarkTheme => !prevDarkTheme)
prevDarkTheme這是該狀態的實際值。當其他東西可能同時改變這個狀態時,我們應該在這里使用函式。通過使用,prevDarkTheme您始終可以確保它是最新的值。你可以在這里閱讀更多關于它的資訊
uj5u.com熱心網友回復:
setState 接受一個值或一個函式
當它獲得一個函式時,該函式將使用先前的狀態被呼叫
請注意,非常建議始終傳遞一個函式以確保您正確更改狀態
不要做
setDarkTheme(!prevDarkTheme)
做
setDarkTheme(prevDarkTheme => !prevDarkTheme)
uj5u.com熱心網友回復:
它是狀態變數中的當前值。在這種情況下,它將是true
function toggleTheme() {
setDarkTheme((prevDarkTheme /* true */ ) => !prevDarkTheme /* !true -> false*/) // false
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/318251.html
標籤:反应
上一篇:swr或useSWR如何在reactjs/nextjs中正常作業?
下一篇:未處理的拒絕(型別錯誤):moralis__WEBPACK_IMPORTED_MODULE_1__.Moralis.start不是函式
