如何在React Native中将数组追加到FormData中

时间:2020-07-29 14:55:27

标签: javascript react-native axios

我有三个数组,我必须通过Axios将它们发送到formdata中。该数组的键是 record [] 。但是我有三个数组,而我只有一个键如何在同一个键上发送三个数组 record [] enter image description here 这是我的代码

const params = new FormData();
      params.append("record[]", this.props.addedOrders);
      params.append("record[]", this.props.addedCustomers);
      params.append("record[]", this.props.addedRecovery);

1 个答案:

答案 0 :(得分:2)

可以使用FormData将多个值添加到同一键。来自doc

与常规表单数据一样,您可以附加多个具有相同名称的值。例如(并通过在名称中添加[]来与PHP的命名约定兼容):

这是一个例子:

const params = new FormData();

params.append('record[]', 1);
params.append('record[]', 2);
params.append('record[]', 3);

console.log(params.getAll('record[]'));

由于您的问题要求将 array 附加到FormData,所以值得指出的是FormData.append适用于字符串和blob,其他类型也将转换为字符串。 / p>

如果发送的值不同于String或Blob,它将自动转换为String。

因此,如果您尝试追加数组,则默认情况下会将其转换为以逗号分隔的列表。对于将序列化为[object Object]之类的对象的数组。您也可以使用例如将每个数组编组为字符串JSON.stringify,然后将数据转换回服务器端,但这是一种实现选择。

const params = new FormData();

params.append('record[]', JSON.stringify([{name: 'joe'}, {name: 'bob'}]));
params.append('record[]', JSON.stringify([{name: 'rand'}, {name: 'smith'}]));

console.log(params.getAll('record[]'));

所有这些,我想说您的问题出在其他地方。