javascript - 有没有办法将对象而不是数组发送到后端? -ReactJS

标签 javascript reactjs loops

我有一张带有复选框的表格。单击后,我必须以如下方式收集数据:

"docList" : {
        "docID1" : "docNR1",
             "docID2" : "docNR2",
}

之后我必须向 BE 提出请求。 BE 将返回一个 ZIP 文件,其中包含所有单击或选择的文档。通常很简单,但我有一些问题。

我在构造函数中声明我的状态:

constructor(props) {
        super(props);
        this.state = {
         selected: []
}
};

然后我将函数传递到复选框中:

    handleCheckboxClick = (e) => {

        if(e.target.checked){
        this.setState({
            selected: [...this.state.selected, e.target.value],
        },()=>{
            console.log( this.state.selected)
        }); 
        } else {
            let remove = this.state.selected.indexOf(e.target.value);
            this.setState({
                selected: this.state.selected.filter((_, i) => i !== remove)
            },()=>{
                console.log( this.state.selected)
            }) 
        }

    }
<Checkbox value={rowData.documentId.toString() + rowData.documentNumber.toString()} onClick={this.handleCheckboxClick} />

从我的控制台我得到这个:

["1004212942019-DGD-2000000478"]

基本上,这是 docID + docNR 组合在一个字符串中。那么我怎样才能将它们分开并返回一个对象,每个对象都有两个分隔的字符串。

结果不是我所期望的,所以如果有人能帮助我,我会很高兴。谢谢

最佳答案

我将使用 JSON.stringify()JSON.parse() 如下:

constructor(props) {
  super(props);
  this.state = {
    docList: {}
  };
};
<Checkbox value={JSON.stringify({documentId: rowData.documentId, documentNumber: rowData.documentNumber})} onClick={this.handleCheckboxClick} />
handleCheckboxClick = (e) => {
        let parsedVal = JSON.parse(e.target.value);
        let newDocList = {...this.state.docList};
        if(e.target.checked) {
          newDocList[parsedVal.documentId] = parsedVal.documentNumber;
        } else {
          delete newDocList[parsedVal.documentId];
        }
        this.setState({
            docList: newDocList
        }, ()=>{
            console.log(this.state.docList)
        }); 
    }

关于javascript - 有没有办法将对象而不是数组发送到后端? -ReactJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58819716/

相关文章:

scala - 避免 Scala 中的循环

java - Java中线程错误异常

javascript - Backbone.js 检测滚动事件

javascript - 使用 css 或 html 自定义 Paypal 按钮?

javascript - 将变量设置为 React 组件不起作用

javascript - 有或没有美元符号 react

c - 如何打印所有这些 block ?

javascript - 从 Javascript 中的嵌套函数返回值

javascript - 使用 Django 的 jQuery/JavaScript 弹出窗口(从子项中选择,在父项中显示)

javascript - 刷新页面时 BrowserRouter 显示错误 | React-router-v4