2017-04-24 13 views
0

フォームの状態が親コンポーネントからダーティかどうかを検出しようとしているため、フォーム値が変更..Reduxフォームv6 isDirty(およびisPristine)セレクタが状態変更時に再レンダリングを起動しない

初期のレンダリングは、コンソールが初期で<Parent/>isDirtyのレンダリングすることを示しているprops.isDirtyをロギング

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) 
予想通り偽示していますが、値を変更すると、新しいvlaueで再レンダリングトリガーされません。..

偽です。ただし、値を変更しても、新しい値の <Parent/>の再レンダリングは実行されません。

更新:

はさらに調査した後、私はこれはバグだと思う:ここ

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

は、フォームの値を変更することが予想されるが、isDirtyは常に偽であるとしてmapStateToPropsトリガします。

答えて

0

Doh!バグではありません。私が間違っている、可変isDirtyセレクタをインポートしました。..

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

が問題を..solved

関連する問題