@artemphrog

В чем разница метода setState() с аргументом объекта и функции?

Читал документацию и не вкурил. В документации написано:
Поскольку this.props и this.state могут обновляться асинхронно, вы не должны полагаться на их текущее значение для вычисления следующего состояния. Правильно будет использовать второй вариант вызова setState(), который принимает функцию, а не объект. Эта функция получит предыдущее состояние в качестве первого аргумента и значения пропсов непосредственно во время обновления в качестве второго аргумента.


Правильно ли я понимаю что если вызываем через функцию то стейт из объекта берется через последнего из очереди асинхронных ? А через объект - последний стейт и не обращает внимание на асинхронные обновления
  • Вопрос задан
  • 569 просмотров
Решения вопроса 1
web_Developer_Victor
@web_Developer_Victor
Что такое google?
const App = () => {
	const [state, setState] = useState(0);

	// используем тогда, когда нужно установить значенее, которое не зависит от state
	setState(1);

	setState((prevState) => {
		return prevState + 1; 
		// мы могли б написать return state + 1, 
		// но тогда б мы не были б уверены, что там именно прошлый state (возможно, он еще не обновился)
	});
};
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы