我正在嘗試創(chuàng)建一個表單,其中我將文本輸入和文件輸入?yún)R總在一起,并且一切正常,直到我決定實現(xiàn)所述文件輸入。這是我的代碼:const [producerData, setProducerData] = useState({ title: '', text: '', address: '', status: '', avatar: '',});const { title, text, address, status, avatar } = producerData;const [avatarname, setAvatarName] = useState('Choose Avatar');const [uploadPercentage, setUploaderPercentage] = useState(0);const handleChange = name => e => { setProducerData({...producerData, [name]: e.target.value }); // setAvatar(e.target.files[0]); name === 'avatar' && setProducerData({...producerData, avatar: e.target.files[0]}) && setAvatarName(e.target.files[0].name); // console.log(e.target.files);}const addProducer = async e => { e.preventDefault(); const formData = new FormData(); producerData.avatar = formData.append('avatar', avatar); console.log(producerData); // addProducer(producerData, setUploaderPercentage);}讓我們這樣說吧,如果我創(chuàng)建一個函數(shù),它就可以工作,也許setAvatar正如代碼中所注釋的那樣。那行得通,但是當我嘗試在與 producerData 相同的對象中使用它時,它總是返回未定義的。編輯:我在幾個 StackOverflow 線程上發(fā)現(xiàn),為了一起處理常規(guī)和文件輸入,我需要執(zhí)行以下操作:const addProducer = async e => { e.preventDefault(); const formData = new FormData(); formData.append( 'title', e.target.title.value) formData.append( 'text', e.target.text.value) formData.append( 'address', e.target.address.value) formData.append( 'status', e.target.status.value) formData.append('avatar', e.target.avatar.files[0]); console.log(formData); // setAvatarName(e.target.files[0].name); // addProducer(producerData, setUploaderPercentage);}并且我需要從我的輸入中刪除 onChange 和 value 屬性?;旧蠌倪@個:<Form.Group> <Form.Label htmlFor={`title`}>Title</Form.Label> <InputGroup> <InputGroup.Prepend> <InputGroup.Text id={`title-text`}> <i className={`fas fa-heading`} /> </InputGroup.Text> </InputGroup.Prepend>這只是我如何擁有我正在使用的其余輸入的一個示例。希望我能讓自己明白。
在 ReactJS 的 FormData 中使用時,頭像總是顯示為未定義
繁華開滿天機
2022-07-15 09:57:23