2017-04-24 33 views
0

我想檢測表單狀態是否從父組件髒,所以我只能顯示一個提交按鈕,如果窗體值已改變..Redux形式v6 isDirty(和isPristine)選擇器不觸發重新呈現在狀態變化

初始渲染顯示虛假的預期,但改變的值不會引發新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) 

控制檯登錄props.isDirty表明,在最初的渲染<Parent/>isDirty是錯誤的。但是,更改值不會觸發使用新值重新呈現<Parent/>

更新:

經過進一步調查,我認爲這是一個錯誤:

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

這裏,改變表單值觸發mapStateToProps如預期,但isDirty永遠是假的。

回答

0

Doh!不是一個錯誤。我被導入錯誤的,可變的isDirty選擇..

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

..solved問題

相關問題