redux-form
的設計思想是你的數據將被保存到服務器提交。
但是,沒有什麼能夠阻止您在異步驗證後使用自己的.then()
子句來執行此操作。像這樣?
// async function you already have that is looking at your
// picture field and rejecting the promise with errors
import validateDimensions from './validateDimensions'
// async function to upload the image
import upload from './uploadImage'
const MyForm = reduxForm({
form: 'myForm',
asyncValidate: values =>
validateDimensions()
.then(() => {
// we know validation passed
upload(values.prettyPicture)
//^not "return upload(values.prettyPicture)" to let this async
// validation promise resolve and do upload asynchronously
// after it has resolved
})
},
asyncBlurFields: [ 'prettyPicture' ]
})(MyForm)
假設我在表單中添加了另一個異步驗證。這是否不會再次運行所有異步驗證,從而導致文件再次被重新上傳? – eNddy
是的,這就是爲什麼它不是'asyncValidate'的預期用途。 –
@ErikR。有沒有什麼辦法可以讓它通過目標'iframe'來執行HTML提交,以便我們可以支持舊的瀏覽器? – Andy