Réinitialisation de l'état initial de Réagir + ES6

J'ai une classe, ElementBuilder ci-dessous, et lorsque l'utilisateur enregistre le Element qu'ils ont construit, je veux de l'état de réinitialiser aux valeurs ci-dessous.

J'ai quelques fonctions dans cette classe que je n'ai pas prévu mais que le changement de l'état de title, size, et color.

Dans l'ES 5, je voudrais avoir un getInitialState fonction de ma classe et pourrait appeler this.getInitialState() dans une fonction.

Cet élément réside dans mon application pour le cycle de vie d'un utilisateur connecté et je veux les valeurs par défaut de toujours être le même quel que soit l'usage.

Comment puis-je réaliser cela sans écrire une fonction qui définit un objet de valeurs par défaut (ou c'est peut-être la réponse)? merci!

class ElementBuilder extends Component {
    constructor(props) {
        super(props);

        this.state = {
            title: 'Testing,
            size: 100,
            color: '#4d96ce',
        };
    }

    resetBuilder() {
        this.setState({ this.getInitialState() });
    }
}
Vous pouvez toujours définir une constante en dehors de la classe avec les valeurs initiales. Puis l'utiliser pour initialiser l'état et de réinitialiser à tout moment.
pour la gestion de l'état qui est robuste, veuillez jeter un oeil à redux avec redux vous pouvez faire toute sorte de choses.e.g défaire, refaire et le temps voyage effortlesly

OriginalL'auteur Zack Shapiro | 2017-07-19