【发布时间】:2020-11-01 08:28:48
【问题描述】:
我需要添加到带有反应组件的文件中。下面是我如何使用一个文件(onChange 和 onSubmit 函数):
const onChangeFile = e => {
setFileData(e.target.files[0]);
};
const onSubmit = e => {
e.preventDefault();
const newItem = new FormData();
newItem.append('item', fileData);
const { description } = offerData;
newItem.append('description', description);
addItem(newItem);
setFileData(null);
}
输入(反应带):
<CustomInput
type="file"
name="item" id="item" label="Choose item image..."
onChange={onChangeFile}
/>
在这里,我如何处理多个文件,但只有一个输入:
const onChangeFile = e => {
setFileData(e.target.files);
};
const onSubmit = e => {
e.preventDefault();
const newItem = new FormData();
for (const key of Object.keys(fileData)) {
newItem.append('item', fileData[key])
}
const { description1, description2 } = item;
newItem.append('description1', description1);
newItem.append('description2', description2);
addItem(newItem);
setFileData(null);
}
然后输入:
<CustomInput
type="file"
name="item"
id="item"
multiple
label="Add images/image..."
onChange={onChangeFile}
/>
两者都有效,但这次我想添加多个文件(正好两个),有两个单一输入,我的 useState 钩子不起作用(就像它不可迭代一样)。以下是两种方式的外观。
const [fileData, setFileData] = useState(null);
那么,如何用两个图像添加一个对象,但添加两个单个输入?
【问题讨论】:
标签: javascript reactjs file react-hooks