學習在這里做出反應。有人可以教我如何解釋下面的函式:
const onElementsRemove = (elementsToRemove) => setElements((els) => removeElements(elementsToRemove, els));
據我了解,這與呼叫相同:
onElementsRemove(setElements(elementsToRemove(els))?
那是對的嗎?第一個符號有好處嗎?也許我對世界的蟒蛇有偏見,但第二個感覺更緊湊?有人可以幫我理解推理嗎?謝謝!
uj5u.com熱心網友回復:
不,這些不一樣。讓我們從內部開始,它必須是這樣的:
setElements((els) => removeElements(elementsToRemove, els))
在 react 中設定 state 時,有兩個選項。你可以直接傳入你想要的新狀態,或者你可以傳入一個函式。如果你傳入一個函式,那么 react 會查找 state 的最新值,然后呼叫你的函式。然后你回傳新狀態將是什么。
所以這樣做的目的是找出狀態的最新值是多少。沒有其他方法可以做到這一點。
接下來是更靈活的外層部分:
const onElementsRemove = (elementsToRemove) => /* the stuff we looked at earlier */
這是定義一個名為onElementsRemove. 從名字上看,我認為這將在未來的某個任意時間點被呼叫。所以它只是定義了功能,稍后你可以呼叫它,一旦你知道要洗掉哪些元素。然后它會轉身并設定狀態。例如,你會這樣做:
onElementsRemove([1, 2, 3]); // i don't actually know what will be in the array
也許擁有這個外部功能是有用的,也許不是。如果您必須經常這樣做,那可能是有道理的。在其他情況下,也許您可??以直接呼叫 setElements,例如:
setElements((els) => removeElements([1, 2, 3], els));
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/403739.html
標籤:
