У меня есть переменная myinterval
внутри functional component
с Крюками , и я обновляю и присваиваю новое значение это myinterval
, только внутри useEffect
.
Но после обновления состояния myinterval
содержит предыдущее значение, я имею в виду значение, которое я инициализировал внутри функциональных компонентов.
function App(props) {
const [name, setName] = useState('Muhammad');
let myinterval = null;
useEffect(()=>{
myinterval = setInterval(()=> {}, 100);
}, []);
const print = async () => {
setName('new name');
console.log(myinterval);
};
return <button className="App" onClick={print}>hey</button>;
}
Теперь, как вы можете видеть, когда я нажимаю print
функция , в первый раз она не равна нулю, но во второй раз она равна нулю.
Это происходит из-за setName('new name');
, фактически после вызова setName('new name');
, затем myinterval
возвращает нулевое значение.
Что я хочу?
Я хочу, чтобы myinterval
переменная всегда возвращала значение, которое повторно инициализировалось внутри useEffect
.
Согласномоя потребность, я не могу объявить свою переменную myinterval
вне function App(props){}
.
Вот пример, который я показал, это очень просто. Пример простого кода