
elated-hermann-05u0hq - CodeSandbox
elated-hermann-05u0hq by hdogukanozkan using react, react-dom, react-scripts
codesandbox.io
useEffect(() => {
// onMount
const ref = setInterval(() => {
//
}, interval);
return () => {
// onDismount
clearInterval(ref);
}
}, []);
Hocam anladigim kadariyla clearInterval diye bir sey tanimlamissin. Bu butonla ne yapmak istiyorsun? Sayaci sifirlamak mi?Ne yaptıysam şunu durdurmayı başaramadım. Video'da gördüğümün aynısını yaptım ama video eski olduğu için çalışmıyor olabilir.![]()
elated-hermann-05u0hq - CodeSandbox
elated-hermann-05u0hq by hdogukanozkan using react, react-dom, react-scriptscodesandbox.io
Eki Görüntüle 1551369
import "./styles.css";
import React from "react";
export default class App extends React.Component {
constructor() {
super();
this.state = {
mod: "yas",
count: 0
};
}
componentDidMount = () => {
this.num = 5;
this.myTimer = setInterval(() => {
this.setState({
mod: new Date().toLocaleTimeString(),
count: this.state.count + 1
});
}, 1000);
};
intervalTemizle = () => {
console.log(this.num);
console.log(this.myTimer);
clearTimeout(this.myTimer);
this.setState({
count: 0
}); // Hem setInterval objesini sifirladim, hem de count degerini 0'a esitledim. Boylece bastan basladi.
//this.state.count = 0;
};
render() {
return (
<div className="App">
<h1>{this.state.mod}</h1>
<h2>{this.state.count}</h2>
<button onClick={this.intervalTemizle}> Click Me! </button>
</div>
);
}
}
Sifirlayacagini dusundum hocam o yuzden. Null verdim timera yine durdu ama yeniden baslatirken tekrar tanimlamak gerekiyor. clearInterval'in neden calismadigini anlayamadim.Durdurmak istiyordum. Yazdığın koda baktım da sayaç yine durmuyor sadece sen setstate ile veriyi 0 yapmış oluyorsun.
Sifirlayacagini dusundum hocam o yuzden. Null verdim timera yine durdu ama yeniden baslatirken tekrar tanimlamak gerekiyor. ClearInterval'in neden calismadigini anlayamadim.
Tam olarak ne yapmak istediğinizi anlatabilir misiniz? Neden class based componentler kullanıyorsunuz?Timeout'da çalışmıyor. 2 function arasında işlem olduğu için çalışmıyor sanırım. Ama izlediğim videoda böyle yapmışlardı.
Tam olarak ne yapmak istediğinizi anlatabilir misiniz? Neden class based componentler kullanıyorsunuz?
useEffect(() => {
// onMount
const ref = setInterval(() => {
//
}, interval);
return () => {
// onDismount
clearInterval(ref);
}
}, []);
Bu sitenin çalışmasını sağlamak için gerekli çerezleri ve deneyiminizi iyileştirmek için isteğe bağlı çerezleri kullanıyoruz.