我正在創建一個多部分表單,其中使用 react hook form 的 usecontrol 方法。我宣告者默認值
const methods = useForm({
defaultValues: {
email: "",
course: "Enginering",
program: "B.tech",
mobielNumber: "",
dob: "",
gender: "",
cityName: "",
state: "",
file:"",
},
});
但是我得到的檔案值是空的,誰能告訴我我必須宣告檔案輸入,這樣我才能得到值。
我在那里看到了他們告訴的檔案
由于能夠取消檔案選擇和 FileList 物件,因此需要在應用程式級別管理檔案型別的輸入。
這些是什么意思,我必須在哪里宣告。
uj5u.com熱心網友回復:
一天后,我發現當我們使用 useController 發布檔案時,我們需要如何顯式設定值
并且不知何故,欄位物件內部具有值,它將 e.target.value 作為默認值,它類似于 ...fakepath/.. 這不是真的,因為檔案在 e.target.files 中上傳
const { setValue } = useForm({
defaultValues: {
file: "",
//.....
}
})
const { field: { name, ref } } = useController({name, control, rules, defaultValue});
不要在 useController 中包含值,因為如果與檔案一起使用,欄位中的值會導致錯誤
const handleChange = (e) => {
setValue('file', e.target.files);
}
<input name={name} ref={ref} type="file" multiple onChange={handleChange}/>
當你提交它時,你會看到 FileList,如果沒有,或者像我說的fakepath,你需要手動將值設定為 e.target.files
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/495998.html
上一篇:Vuelidate僅檢查1條規則
