我们正在使用FormSpy,已订阅肮脏。当dirty为true时,FormSpy中的OnChange函数将更新redux中的dirty标签。当我在任何输入字段中键入内容时,第一个字母都不会显示,但是在第一个字母笔划时,redux状态会用dirty:true
更新。
还使用
将表单写入其他文件中<Form
component={Theform}
/>
这就是我们使用FormSpy的方式
<FormSpy
subscription={{ dirty: true }}
onChange={state => this.updateDirty(state.dirty)}
{...props}
/>
updateDirty(isDirty) {
const { toggleIsDirty, dirtyState } = this.props;
if (isDirty) {
if (!dirtyState.isDirty) {
toggleIsDirty();
}
}
}
未完成if (isDirty)
检查时,它将继续更新存储值,但在输入字段中不显示任何内容。
我们哪里出错了?
答案 0 :(得分:0)
我需要查看更多表单设置以提供帮助。恐怕这还不够。
答案 1 :(得分:0)
当状态存储在多个位置并且状态由未内置于React的事件更新时,您会得到以下行为:组件多次渲染,数据可能会发生冲突,例如您的肮脏国家不同意的情况。一旦数据变为您期望的值,这种重新渲染将停止,在这种情况下,脏状态是相同的。
选项1
仅从商店之一中读取状态。在您的情况下,请忽略最终形式传递的内容,而仅从redux读取
选项2
查找触发第一个非反应事件的位置,并将其包装在unstable_batchedUpdate