2016-02-12 3 views
6

Wenn ich eine einfache Reaktionskomponente habe, die eine Klickanzahl für eine Schaltfläche aufzeichnet und bei jedem Klick einen neuen Verlaufsstatus aufzeichnet, ohne die URL zu ändern. Wenn der Benutzer zurückklickt, wie stelle ich den Zustand so wieder her, wie er war?Wie Status wiederherstellen auf Zurück-Schaltfläche mit reagieren

Ich kann tun, wie es hier ist, mit dem nativen JavaScript-Verlaufsobjekt, aber es schlägt fehl, wenn der Benutzer zurück in den ersten Zustand und zurück von einer anderen Komponente in den letzten Zustand von diesem.

Ich vermute, dass es besser ist, dies mit react-router (1.0) zu tun?

+0

Browserverlauf im React-Router auschecken. –

+0

Vielleicht [diese Antwort] (http://stackoverflow.com/questions/29442206/how-to-pass-both-this-state-and-this-props-to-routes-using-reac-router) Hilfe. –

+0

Sie können localStorage für Ihren Bundesstaat verwenden. Warum nicht? –

Antwort

1

localStorage oder sogar Cookies sind Optionen, aber wahrscheinlich nicht der beste Weg. Sie sollten die Anzahl in einer Datenbank speichern. Auf diese Weise können Sie den Anfangszustand in Ihrem Konstruktor auf den letzten in der Datenbank gespeicherten Wert festlegen.

Eine andere Option, wenn Sie die Zählung auf der Clientseite (und nicht in einer Datenbank) nur beibehalten müssen, ist eine Schließung.

// CountStore.js 
var CountStore = (function() { 
    var count = 0; 

    var incrementCount = function() { 
    count += 1; 
    return count; 
    }; 

    var getCount = function() { 
    return count; 
    }; 

    return { 
    incrementCount: incrementCount, 
    getCount: getCount 
    } 

})(); 

export default CountStore; 

Ihr Code würde sich ändern, um das unten zu sein.

Es kann einen saubereren Weg mit react-Router geben, aber dies ist eine Option.

Verwandte Themen