Переменная React State-Hook не работает в асинхронной рекурсивной функции

Я пытаюсь получить доступ к переменной (которая инициализируется с помощью useState) каждые 3 секунды. Но переменная не обновляется внутри функции при изменении значения переменной. То же самое происходит, когда переменная указывается как свойство. Сама переменная изменяется, как видно <p>.

Я пробовал разные методы для регистрации переменной, но каждый раз, когда она регистрирует значение, которое было у переменной при вызове startInterval, а не значение, которое она должна иметь в этот момент.

export function Test() {
  let [testState, setTestState] = useState(false);

  function startInterval() {
    // interval = setInterval(() => console.log(props.isLoggedIn), 3000);  //Doesn't work as well
    recursiveTest2()
  }

  async function recursiveTest1() {
    await new Promise(resolve => setTimeout(resolve, 3000))
    console.log(props.isLoggedIn);
    recursiveTest1();
  }

  async function recursiveTest2() {
    new Promise(resolve => setTimeout(resolve, 3000)).then(() => {
      console.log(testState);
      recursiveTest2();
    })
  }

  function toggelTestvariable() {
    setTestState(!testState);
    console.log(testState)
  }


  return ( 
    <div>
      <p> { testState.toString() } </p> 
      <button onCLick = { toggleVariable }>ToggleVariable</button>
    </div>
  )

}


person Pascal    schedule 07.04.2021    source источник
comment
Прочтите это. А также это из официального FAQ по React   -  person Jared Smith    schedule 07.04.2021
comment
Большое спасибо. Эти статьи помогли мне узнать о проблеме.   -  person Pascal    schedule 08.04.2021