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

时间:2018-09-21 03:45:23

标签: javascript reactjs

    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的新手,请帮助我。谢谢!

1 个答案:

答案 0 :(得分:1)

像这样使用forEach()和模板文字:

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