将整行保存到数组实例中

我是一名JavaScript初学者,不知道如何准确搜索我想要完成的事情......

我有下面的数组,我以一种表格式逐页显示在页面上。

[
    0: {
        cuip: ".A0100",
        quantity: 38,
        ...
    }
    1: {
        cuip: ".A0102",
        quantity: 1,
        ...
    }
    ...]

当用户选择列表中的任何项目时,我会标记下面切换选择的该行旁边的复选框

  toggleRow(cuip) {
    const newSelected = Object.assign({}, this.state.selected);
    newSelected[cuip] = !this.state.selected[cuip];
    this.setState({
      selected: newSelected,
      selectAll: 2
    });
  }

我最终选择的状态是什么

{.A0100: true, ...}

哪个好。因此,如果用户选择1,多个或所有行,我将那些行的cuips在状态中保存为true。麻烦的是,我需要保存行中的某些值,如ste,clt,quantity等。即:

[
    {
        ...
            "cuip": ".A0102",
            "clt": "asvd",
            "ste": "v31r",
            "quantity": 3,
        ...
    }, {
        ...
            "clt": "vr13",
            "ste": "vr31",
            "quantity": 6,
        ...
    },]


慕斯709654
浏览 423回答 3
3回答

森林海

您可以找到所选的特定行并将其保存在选定的数组中例如://you can have a state of selected rowsstate = {   selectedRows: []}toggleRow(cuip) {     const newSelected = Object.assign({}, this.state.selected);     newSelected[cuip] = !this.state.selected[cuip];..     const {selectedRows, /* this is where your data is stored -> */ rows} = this.state;     const findSelected = rows.find(row => row.cuip === cuip);     const selected = [...selectedRows, findSelected]     this.setState({       selected: newSelected,       selectAll: 2,       selectedRows: selected       });   }对不起如果我理解错了,但那是你在寻找什么?

UYOU

您可以存储(以及稍后删除)对整行的引用而不是布尔值以访问每个字段。// Sample storage and a sample rowconst selected = {};const row = { cuip: '.A0100', quantity: 38 };// Add a rowselected[row.cuip] = row;// Check if a row is selectedconst isRowSelected = selected.hasOwnProperty(row.cuip);// Remove a rowdelete selected[row.cuip];您可以使用与已经演示过的方式相同的方式将其绑定到州管理层。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript