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