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
永遠是假的。