数组从反应状态发送到节点/表达式"/>
将数组从反应状态发送到节点/表达式
我一直在寻找如何从我的反应前端发送一个数组到我的节点/表达后端。我的第一种方法是这样。反应:
saveUpdates = (clickEvent) => {
var list = [];
var length = this.props.title.length;
var tally = 0;
for (var i = 0; i < length; i++) {
tally = tally + 1;
var x = document.getElementById(tally).selectedIndex
var y = document.getElementById(tally).options
list.push(y[x].text)
}
const myHeaders = new Headers();
myHeaders.append('Authorization', localStorage.getItem('token'));
const newQuantity = new FormData();
newQuantity.append('quantity', list)
newQuantity.append('userID', localStorage.getItem('customerID'))
fetch('http://localhost:5000/updateQuantity', {
method: 'POST',
headers: myHeaders,
body: newQuantity
})
在这种方法中,我将新值推入变量列表,并初始化为数组。看来可以发送到我的后端了。我console.log节点中的值,我的数组看起来像这样(此特定实例只有两个元素):
5,3
问题是我最终在节点后端循环遍历此数组的元素以用于mysql查询,并且将逗号视为元素。有没有办法来解决这个问题?我可以以某种方式重新格式化此数组吗?
我的另一个选择是将列表数组设置为state并通过标题发送状态。这就是我这样做的方式:
this.setState({totalQuantity: list})
const myHeaders = new Headers();
myHeaders.append('Authorization', localStorage.getItem('token'));
const newQuantity = new FormData();
newQuantity.append('quantity', this.state.totalQuantity)
newQuantity.append('userID', localStorage.getItem('customerID'))
fetch('http://localhost:5000/updateQuantity', {
method: 'POST',
headers: myHeaders,
body: newQuantity
})
此代码与第一种方法非常相似。但是在这里,我将列表数组设置为状态(状态项totalQuantity初始化为数组),然后通过标题发送状态。但是,当我这样做并在节点发布请求中console.log结果时,我得到一个空白行。它似乎什么也没发送。它甚至没有说undefined或null,而只是打印空白行(我通过在上面和下面打印字符串来测试)。这些方法中的任何一种都可以用于通过头将数组从react发送到节点吗?如果是这样,我可以做出哪些调整来解决这些问题?
回答如下:您必须先对数组进行字符串化处理,然后再使用body发送它,然后在服务器端,您必须再次对其进行解析。POST Request with Fetch API?
更多推荐
将数组从反应状态发送到节点/表达式
发布评论