score:0

Accepted answer
  const Descontar = () => {
    const timer = setTimeout(() => {
      setContador(contador - 1);
    }, 1000);
    return timer;
  };

  useEffect(() => {
    var timer;
    if (contador === 0) {
      //history.push("/");
    } else {
      timer = Descontar();
    }
    return () => {
      clearInterval(timer);
    };
  }, [contador]);

score:3

import React from "react";
import { useHistory } from "react-router-dom";
import Button from "react-bootstrap/Button";

export default function PagTimer() {
  const history = useHistory();
  const [contador, setContador] = React.useState(10);
  React.useEffect(() => {
    const timer = setInterval(() => {
      setContador((contador) => contador - 1);
    }, 1000);
    return () => clearInterval(timer);
  }, []);
  const AddTime = React.useCallback(() => {
    setContador(10);
  }, []);

  React.useEffect(() => {
    if (contador === 0) {
      history.push("/");
    }
  }, [contador, history]);

  return (
    <div>
      <h1>{contador}</h1>
      <Button onClick={AddTime} variant="outline-primary">
        Add Time
      </Button>
    </div>
  );
}

Related Query

More Query from same tag