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的新手,请帮助我。谢谢!
答案 0 :(得分:1)
像这样使用forEach()和模板文字:
const formData = new FormData();
tagarray.forEach((value, index) => formData.append(`material[tags][${index}]`, value));