2017-04-24 5 views
0

J'essaie de détecter si l'état du formulaire est sale à partir d'un composant parent. Je ne peux donc afficher un bouton de soumission que si les valeurs de formulaire a ..Le sélecteur Redux-form v6 isDirty (et isPristine) ne déclenche pas de re-render sur changement d'état

la première render présente faux comme prévu, mais la modification des valeurs ne déclenche pas réengendrer avec le nouveau vlaue ..

import React from 'react' 
import { isDirty } from 'redux-form' 
import { connect } from 'react-redux' 

<Parent> 
    { props.isDirty ? <SubmitButton /> : null } 
    <Form {...etc} /> 
</Parent> 

const mapStateToProps = state => ({ 
    ... 
    isDirty: isDirty('myForm')(state), 
}) 

export default connect(mapStateToProps, null)(Parent) 

Console journalisation props.isDirty montre que lors de la première de rendre <Parent/>isDirty c'est faux. Toutefois, la modification des valeurs ne déclenche pas un nouveau rendu de <Parent/> avec la nouvelle valeur.

Mise à jour:

Après une enquête plus approfondie, je pense que cela est un bug:

const mapStateToProps = (state) => { 
    console.log(isDirty('myForm')(state) 
    return { 
    ... 
    isDirty: isDirty('myForm')(state), 
    } 

Ici, l'évolution des valeurs de forme déclenche mapStateToProps comme prévu, mais isDirty est toujours faux.

Répondre

0

Doh! Pas un bug. J'importais tort, mutable isDirty sélecteur ..

import { isDirty } from 'redux-form/immutable'

..solved le problème