reactjs - React 将对象数组附加到 formdata
问题描述
我在将对象数组(对象包含文件)附加到表单数据时遇到问题。这是我需要发送到后端的表单数据。
{
education: {
name: "naziv edukacije ovde celavi",
company: 1,
app: 1,
category: 1
},
slides: [
{
serial_num: 1,
text: "test slajda",
image: File
},
{
serial_num: 2,
text: "text slajda 2",
image: File
}
]
}
当我这样做时,它适用于教育对象
formData.append("education", education)
但是幻灯片在附加到 formData 之前不会通过 幻灯片数组的 console.log
我试过了
formData.append("slides", slides)
这给了我[对象对象],[对象对象]
如果我尝试
formData.append("slides", JSON.stringify(slides))
对象的图像键丢失了大部分文件数据,使其不足以用于后端
解决方案
看起来你将不得不循环遍历你的数组,因为你将它附加到你的 formData,我从几个地方看到,here & here。
但是对于您的示例,您可能可以执行以下操作:
const slides = [{serial_num: 1, text: "test slajda", image: File}, {serial_num: 2, text: "text slajda 2", image: File}]
const formData = new FormData();
slides.forEach(item => {
formData.append(`slides`, JSON.stringify(item));
});
console.log(formData.getAll('slides'));
推荐阅读
- typescript - 原始类等于
- python - 顺序模型张量流中的自定义层
- javascript - 尝试将数据写入控制台时 Firebase 抛出错误
- javascript - 如何在 React 中定位单个 map()'d 元素?
- visual-studio-code - Visual Studio 代码左侧的面板消失了
- r - 从R中的行制作列联表
- matlab - MATLAB CREATE DLL:命令“链接”以返回值“1”退出
- java - JFormattedTextField 仅返回默认值
- azure - Azure 的新用户:访问查询编辑器
- javascript - Firebase 云功能无法部署