2017-10-03 4 views
0

J'ai une application qui est un assistant en plusieurs étapes où j'ai un élément d'ordre supérieur qui crée chaque forme dans le processus, actuellement je chaque composant de formulaire prévu avec les options suivantes:implications de la mise en enableReinitialize dans Redux forme

{ 
    form: formName, 
    validate: validate, 
    destroyOnUnmount: false, 
    keepDirtyOnReinitialize: true, 
    forceUnregisterOnUnmount: true 
} 

Je ne suis pas actuellement en train de définir enableReinitialize donc il est par défaut à false.

Je mets à jour l'état de redux chaque fois que l'utilisateur passe à l'étape suivante.

Il s'agit d'un problème dans le scénario de l'assistant, car si l'utilisateur clique en arrière puis avance à nouveau, il perd un certain état, car les champs sont restaurés au initialValues à cette étape particulière. Quelles sont les répercussions sur les performances en réglant enableReinitialize sur true, est-ce réinitialisé chaque fois que l'état change ou juste à chaque chargement du composant?

Répondre

0

La forme redux docs contient un guide très utile pour les formulaires d'assistant. Ce que vous cherchez n'est pas enableReinitialize, mais à destroyOnUnmount à false.

Les docs sont assez simples, je pense.

+0

Oui mais alors les champs perdent leurs valeurs si vous cliquez de nouveau sans mettre à jour l'état global – dagda1

+0

Je veux garder l'état dans l'état redux-firm jusqu'à ce qu'il soit valide et ensuite mettre à jour – dagda1

+0

Pourquoi cela se produirait-il? 'redux-form' est celui qui gère l'état de la forme, et à moins d'être détruit (ce qui est empêché avec' destroyOnUnmount' réglé sur 'false', pas' true' juste édité sur ma réponse), ils ne devraient pas être perdus. – cfraser