2017-04-07 16 views
0

預警所以,這裏是警告:reduxForm V5.3.1不受控制/控制上覆選框

Warning: UserInviteForm is changing an uncontrolled input of type checkbox to be controlled. 

看着this票reduxForm V5和其他人後,看來,我得到這個警告,因爲初始值因爲該字段是未定義的,所以輸入值屬性需要使用字段值||來初始化「」。

再做一點點research,受控複選框需要將checked屬性設置爲一個值。

所以我的假設是,明確警告的方式是寫輸入標籤中的兩種方法之一:

<input 
    {...isPrimary} 
    value={isPrimary.value || ''} 
    type="checkbox" 
> 

OR

<input 
    {...isPrimary} 
    checked={isPrimary.checked || ''} 
    type="checkbox" 
> 

良好的措施我也試過checked={isPrimary.checked || false}value={isPrimary.value || false}和兩者結合在一起。

我甚至嘗試在組件安裝上設置isPrimary的checked和value屬性,但仍然沒有任何東西可以擺脫警告。

此外,我想補充一點,我知道有一個reduxForm v6出來,但這是我們正在努力修復的已部署應用程序的當前版本,而reduxForm v6即將發佈在我們的應用程序的未來部署版本中。

任何人都有解決這個問題的任何見解?

回答

0

我試了一件事,並找出解決方案。

我能夠通過在連接reduxForm時設置字段的初始值,然後將輸入的值設置爲該初始值來獲得此工作。

UserInviteFormContainer = reduxForm({ 
form: FORM_ID, 
    fields: FIELD_NAMES, 
    initialValues: { 
    isPrimary: false, 
    }, 
    validate, 
})(UserInviteFormContainer); 


<input 
{...isPrimary} 
value={isPrimary.initialValue || ''} 
type="checkbox" 
>