根据数组的长度,在 FormData 中为 .append 创建一个函数


onSubmit = (e) => {
e.preventDefault()
var stringers = this.state.tags
var tagarray = stringers.split(",");
const formData = new FormData()
formData.append('material[tags]', tagarray)

(this.state.tags来自<Input>(

我的onSubmit功能上有这个。它不会运行,因为它是错误的代码。

我的问题是:例如我的this.state.tags包含"Apples,Oranges,Strawberries",就会转换为tagarray值为

["Apple", "Oranges", "Strawberries"]
0: "Apples"
1: "Orange"
2: "Strawberries"
length: 3

现在,我之前已经说过上面的代码是错误的。为什么? 因为,如果我从数组中传递 3 个值,我的formData.append应该是这样的

formData.append('material[tags][0]', //one array value(Apples) here)
formData.append('material[tags][1]', //one array value(Oranges) here)
formData.append('material[tags][2]', //one array value(Strawberries) here)

但我不能像那样修复它。我必须创建一个函数来评估数组中有多少值,然后该函数必须创建所需的formData.append以便我以后可以将其传递给我的 axios。我该如何创建它?我是Javascript和ReactJS的新手,所以请帮助我。谢谢!

使用 for Each(( 和模板文字,如下所示:

const formData = new FormData();
tagarray.forEach((value, index) => formData.append(`material[tags][${index}]`, value));

最新更新