为了账号安全,请及时绑定邮箱和手机立即绑定

将整行保存到数组实例中

将整行保存到数组实例中

慕斯709654 2019-04-24 18:19:15
我是一名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,         ...     },]
查看完整描述

3 回答

?
森林海

TA贡献2011条经验 获得超2个赞

您可以找到所选的特定行并将其保存在选定的数组中

例如:

//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  
    });
  }

对不起如果我理解错了,但那是你在寻找什么?


查看完整回答
反对 回复 2019-05-17
?
UYOU

TA贡献1878条经验 获得超4个赞


您可以存储(以及稍后删除)对整行的引用而不是布尔值以访问每个字段。


// Sample storage and a sample row

const selected = {};

const row = { cuip: '.A0100', quantity: 38 };


// Add a row

selected[row.cuip] = row;


// Check if a row is selected

const isRowSelected = selected.hasOwnProperty(row.cuip);


// Remove a row

delete selected[row.cuip];

您可以使用与已经演示过的方式相同的方式将其绑定到州管理层。

查看完整回答
反对 回复 2019-05-17
  • 3 回答
  • 0 关注
  • 422 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信