I'm new to react. I want to create a counter using setState and setInterval. I don't want to put react.dom render in an interval because I know it's not a good-practice. This is my effort so far:
class Counter extends React.Component {
  state = {
    counter: 0
  }
  increment = () => {
    setInterval(() => {
      this.setState({
        counter: this.state.counter+1});
    }, 1000);
   
  };
  
  render() {
    return <div>
    <p>{this.state.counter}</p>
    </div>;
  }
}
const el = <Counter />; 
ReactDOM.render(
  el, document.getElementById('root')
);
I have also try it this way:
class Counter extends React.Component {
  state = {
    counter: 0
  }
  increment = () => {
    this.setState({
     counter: this.state.counter+1});
  };
  
  render() {
    return <div>
    <p>{this.state.counter}</p>
    </div>;
  }
}
setInterval(Counter.increment, 100)
const el = <Counter />; 
ReactDOM.render(
  el, document.getElementById('root')
);
None of them worked. What is the problem?
 
    