Внутренне useState
отслеживает, инициируются ли перехваты в первый раз или нет с использованием переменной. Если это первый вызов useState
, он использует переданный аргумент, иначе он поддерживает свой собственный dispatchQueue
, который он использует для обновлений.
Что касается приведенного ниже утверждения
<button onClick={()=>setCount(count+1)} >{count}</button>
здесь это не setCount, который сохраняет переменную, вместо этого функция стрелки наследует переменную count из охватывающей области видимости.
Однако установщик из useState
hook также указывает метод обратного вызова, которому он передает текущее значение. Например
<button onClick={()=>setCount(savedCount => savedCount+1)} >{count}</button>
Здесь savedCount
передается из setCount
в метод обратного вызова и внутренне реагирует, поддерживает текущее состояние ловушки.