React hook: разница между установкой состояния с помощью аргумента или функции стрелки - PullRequest
2 голосов
/ 16 марта 2020

Я хотел бы подробнее рассказать об обновлении состояния в следующем выпуске.

Реакция зацепки, повторное отображение и сохранение того же состояния - как это работает под капотом?

Есть ли разница между двумя способами обновления? Они строго эквивалентны?

<button onClick={()=>setCount**(count+1)**} >{count}</button>

<button onClick={()=>setCount(**savedCount => savedCount+1)**}{count}</button>

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 16 марта 2020

Нет, они не. Вы должны предпочесть последнюю версию, поскольку она гарантирует, что count, с которым вы работаете, является последней версией. При работе непосредственно с count, а не savedCount, может иметь некоторые обновления, все еще не примененные.

0 голосов
/ 16 марта 2020

Нет, между ними нет никакой разницы.

Первый имеет значение count через концепцию области видимости.

Второй получает значение из хука useState с помощью обратный вызов, который всегда предоставляет последнее значение.

...