вы правы .. setState
работает асинхронно. Так что нет смысла вызывать его несколько раз внутри al oop или где-либо еще, кроме как в конце вашего блока кода. Также не лучшая практика.
Так что вы можете сделать, иметь копию этой переменной состояния, определенной перед вашим l oop. Делайте все, что вы хотите сделать с этой переменной внутри l oop. В конце вы можете просто обновить свое состояние с помощью этой обновленной переменной за один раз.
Таким образом, вам не придется использовать setState
несколько раз, также вы можете получить обновленное состояние внутри l oop из фиктивной переменной.