Countdown-timer in Reagieren

Ich habe gesehen, viele countdown-Timer in JavaScript und wollte eins zu bekommen, arbeiten Reagieren.

Ich ausgeliehen haben, diese Funktion habe ich online gefunden:

secondsToTime(secs){
    let hours = Math.floor(secs / (60 * 60));

    let divisor_for_minutes = secs % (60 * 60);
    let minutes = Math.floor(divisor_for_minutes / 60);

    let divisor_for_seconds = divisor_for_minutes % 60;
    let seconds = Math.ceil(divisor_for_seconds);

    let obj = {
        "h": hours,
        "m": minutes,
        "s": seconds
    };
    return obj;
  };

Und dann Schreibe ich diesen code selbst

  initiateTimer = () => {
    let timeLeftVar = this.secondsToTime(60);
    this.setState({ timeLeft: timeLeftVar })
  };

  startTimer = () => {
    let interval = setInterval(this.timer, 1000);
    this.setState({ interval: interval });
  };

  timer = () => {
    if (this.state.timeLeft >0){
      this.setState({ timeLeft: this.state.timeLeft -1 });
    }
    else {
      clearInterval(this.state.interval);
      //this.postToSlack();
    }
  };

Derzeit onclick-es wird die Uhrzeit auf dem Bildschirm an: Time Remaining: 1 m : 0 s
Aber es reduziert sich nicht es zu Time Remaining: 0 m : 59 s und dann Time Remaining: 0 m : 58 s etc etc

Ich glaube, ich muss die Funktion erneut aufrufen mit einem anderen parameter. wie kann ich über das tun dies ?

EDIT: ich VERGAß ZU SAGEN, ich MÖCHTE DIE FUNKTIONALITÄT, SO DASS ich VERWENDEN KÖNNEN SEKUNDEN ZU MINUTEN & SEKUNDEN

  • Ein die Reagieren, Dokumentation, Beispiele ist eine Uhr, die sich selbst aktualisiert, wie es scheint, wäre ziemlich hilfreich...
  • es ist halb hilfreich. Sie sind immer nur eine Zeit aber, als können es durch componentDidMount während ich nur extrahieren möchten Sekunden und Minuten von einem Start-position..
  • Vielleicht könnte man ein runnable minimale reproduzierbare Beispiel in der Frage über Stapel-Snippets, die Unterstützung Reagieren und JSX, so konnten wir sehen, das problem in Aktion.
  • finde es sehr schwierig, eines zu erstellen in JSfiddle wie ich bin mit vielen Komponenten mit vielen Requisiten in vielen Dateien
  • von der Frage, was macht Sinn für Sie? (um zu sehen, ob ich hinzufügen können, mehr wissen um die Dinge erklärt, die weniger gut)
  • sorry für den spam. Was ich brauche, mehr ist ein Weg, um zu konvertieren Sekunden Sekunden/Minuten z.B. 10 -> 00:10 oder 65 -> 01:05, reagieren. im Grunde ein schöner Weg, um zu formatieren, meine Stand

InformationsquelleAutor The worm | 2016-11-30
Schreibe einen Kommentar