Я пытаюсь получить доступ к переменной (которая инициализируется с помощью 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>
)
}