redux-form具有相同名称的多个表单;如何不覆盖syncErrors

时间:2018-07-24 14:10:39

标签: reactjs redux redux-form

我正在使用//app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie); CookieAuthenticationOptions cookieAuthenticationOptions = new CookieAuthenticationOptions(); cookieAuthenticationOptions.AuthenticationType = DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie; cookieAuthenticationOptions.AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Passive; cookieAuthenticationOptions.CookieName = ".AspNet." + DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie; cookieAuthenticationOptions.ExpireTimeSpan = TimeSpan.FromDays(365); cookieAuthenticationOptions.SlidingExpiration = false; CookieAuthenticationExtensions.UseCookieAuthentication(app, cookieAuthenticationOptions); 来管理类似向导的表单。向导步骤的所有形式都具有相同的名称,这从来都不是真正的问题,因为它们从未在同一时间挂载过。 现在,在其中一个步骤中,我有一个模式,它将使用该名称打开另一个表单。

当初始化第二个属性时,这导致redux-form覆盖redux-form属性,因此现在丢失了打开模态之前存在的所有错误。

简单示例: 我有一个包含Field1和Field2的表格,两者都有错误。现在,我用另一个窗体打开一个模态,该窗体呈现Field2和Field3。现在,Field1的错误已从状态中删除,即使它仍挂在后台。

我认为syncErrorskeepDirtyOnReinitialize道具会规避这一点,但似乎不起作用。

enableReinitialize是这样工作的吗?我知道在同一个页面上有多个具有相同名称的表格有点奇怪,但是到现在为止还是很有意义的。在第二种形式中使用其他名称显然可以解决该问题,但还会引入很多其他问题。

有什么想法吗?您认为这是一个错误吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

尝试将destroyOnUnmount设置为false,以使表单字段和错误保持在您的redux状态。