gpt4 book ai didi

reactjs - Redux-form v6 isDirty(和 isPristine)选择器不会在状态更改时触发重新渲染

转载 作者:行者123 更新时间:2023-12-03 14:00:15 26 4
gpt4 key购买 nike

我正在尝试检测父组件的表单状态是否脏,因此如果表单值已更改,我只能显示提交按钮。

初始渲染按预期显示 false,但更改值不会触发使用新 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总是错误的。

最佳答案

哦!不是错误。我导入了错误的可变 isDirty 选择器..

从 'redux-form/immutable' 导入 { isDirty }

..解决了问题

关于reactjs - Redux-form v6 isDirty(和 isPristine)选择器不会在状态更改时触发重新渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43585141/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com