Аргумент, переданный useState
, является initialState
, значением, которое инициализирует ваше состояние при первом рендеринге и не учитывается при последующих рендерингах. Проблема в том, что когда у вас следующая ситуация
const Component = () =>{
const [state, setState] = useState(getInitialHundredItems())
}
Представьте, что этот вызов вызывается при каждом рендеринге без необходимости (помните, что хотя начальное значение игнорируется при следующих рендерах, функция, которая его инициализирует, все равно вызывается).
Для таких случаев использования, как это, вместо того, чтобы просто указать значение, которое вы можете передать function
, которое возвращает начальное состояние, эта функция будет выполняться только один раз (начальный рендеринг), а не на каждом рендере, как приведенный выше код
const Component = () =>{
const [state, setState] = useState(() => getInitialHundredItems())
}