當我使用initialValues設置我的formvalues時,我想運行規範化和異步驗證。我甚至嘗試派遣兩個模糊和變化的行動,但都不起作用:正常化使用initialValues設置的redux-form值
dispatch(blur('userdata', 'user_zipcode', '3021LC'));
dispatch(change('userdata', 'user_zipcode', '3021LC'));
什麼是解決這個問題的正確方法?
當我使用initialValues設置我的formvalues時,我想運行規範化和異步驗證。我甚至嘗試派遣兩個模糊和變化的行動,但都不起作用:正常化使用initialValues設置的redux-form值
dispatch(blur('userdata', 'user_zipcode', '3021LC'));
dispatch(change('userdata', 'user_zipcode', '3021LC'));
什麼是解決這個問題的正確方法?
至於規範化,使用非規範化數據進行初始化有點奇怪。我建議您查看Value Lifecycle,並可能使用parse
和format
函數的組合。
至於運行異步驗證,您可能會用無效數據進行初始化也很奇怪,但您可以在表單組件中調用this.props.asyncValidate()
function來觸發異步驗證。
這有幫助嗎?
我在使用initialValues有同樣的問題,而不是讓他們歸:
使用format
,而不是normalize
似乎解決這一問題,但 format
實際上並沒有改變你的店就像你有數據normalize
這樣做,如果你想這樣做,那麼使用兩者可能是解決這個問題的最好方法?我不知道......
所以,這裏有一個例子:
<Field component={MyCustomInputField} name="phone" format={normalizePhone} normalize={normalizePhone} label="Phone" type="tel" />
format
是在Value Lifecycle Hooks
希望這有助於第一件事!
這確實有幫助:)。這裏的「問題」是這個表單預先填充了userdata。我只是想仔細檢查(和規範化)數據。我找到了一種正常化數據的方法:https://github.com/erikras/redux-form/issues/1988#issuecomment-264558513。然而,異步驗證不起作用...如果我是正確的,我應該能夠在我的裝飾表單中運行this.props.asyncValidate()後,調度initialize-action,對吧? –
這是正確的,是的。 –
它根本不運行asyncValidator函數......任何你能想到的我都可能錯過的東西? –