当前位置: 首页 > 知识库问答 >
问题:

react-单击表上的数据返回错误的行和列索引

田琛
2023-03-14

我正在使用react编写一个简单的数据表。单击一个表单元格后,我需要函数来知道它的确切行索引和列索引。在我的例子中,我有一个3x3表,索引从0到2。

function getTable(){
    let rowIndex = 0;

    this.tableData.forEach(row => {
      const rowValues = Object.values(row);
      let colIndex = 0;

        let rowData = [];
        rowValues.forEach(colVal => {
          rowData.push(
            <td key={colIndex} onClick={() => this.enableEdit(rowIndex, colIndex)}>
              {colVal}
            </td>
          );
          console.log("row: " + rowIndex + ", column: " + colIndex);
          colIndex++;
        });

        bodyRows.push(<tr key={rowIndex}>{rowData}</tr>);

      rowIndex++;
    });

      return (
      <table className="table table-dark">
        <thead>
          <tr>{headColumns}</tr>
        </thead>
        <tbody>{bodyRows}</tbody>
      </table>
    );

}

    enableEdit(row, col){
       console.log(row, col);
    }

控制台日志,一切正常。我的结果如下:

row: 0, column: 0
row: 0, column: 1
row: 0, column: 2
row: 1, column: 0,
row: 1, column: 1,
row: 1, column: 2
...

钥匙也很好用,它们都是独一无二的:

但是,enableEdit()函数在单击任何单元格后返回3,3(我猜是3,因为如果在循环之后输入console.log,这与我得到的值相同),这就是我的问题。

那么我做错了什么?为什么我没有得到我预期的结果?

共有1个答案

段弘和
2023-03-14

乌察帕特尔帮助我明白发生了什么。在每一次迭代之后rowIndex和colIndex的值分别为3、3。我们甚至可以看到,如果我们console.log循环。

所以我所做的只是创建一个新对象并存储不会在那里被触及的数据,如下所示:

    rowValues.forEach(colVal => {
      const indexDat = { rowIndex, colIndex };
      rowData.push(
        <td key={colIndex} onClick={() => this.enableEdit(indexDat)}>
          {colVal}
        </td>
      );
      console.log("row: " + rowIndex + ", column: " + colIndex);
      colIndex++;
    });
 类似资料:
  • 问题内容: 使用on_change回调,我可以在Bokeh中获取DataTable中所选内容的数字行索引。是否可以:a)获取列索引b)获取索引值(列标题和行标题) 示例代码: 这给出了以下内容,它们可以返回行以及选择中的值。如果我总是希望返回单个列,则这是理想的。但是,选择UI(虚线)似乎表明特定的列是已知的,而不仅仅是行。如果无法获得选定的列,我可以同时使用行索引和单元格值来查找它吗? 本地服务

  • 问题内容: 让 假设我要对列表中每个列表的索引元素求和,例如在矩阵列中添加数字以获得单个列表。我假设数据中的所有列表的长度均相等。 如何遍历列表列表而不会出现索引超出范围错误?也许lambda?谢谢! 问题答案: 您可以尝试以下方法: 这里使用的组合和解压的列表,然后根据自己的索引压缩的项目。然后,您可以使用列表推导来遍历相似索引的组,对其进行求和并返回其“原始”位置。 为了更清楚一点,下面是迭代

  • 如标题所示,如果“模型”不完整,我所要做的就是返回一个自定义错误集合。 虽然我在积极地“搜索/谷歌”,但我还没有找到解决问题的办法。 我可以使用“modelstate”,但是由于“定制”,我想手动这样做。 代码如下: null null 基于自定义属性查找不完整的属性 属性样本 所以忽略后面的两个片段,更多的是给出一个完整的流程概述。我完全理解有一些“开箱即用”的技术,但我确实喜欢创建自己的实现。

  • 我有一个从适配器展开的列表视图。当我点击其中一个按钮时,我得到了错误的项目。在我添加了< code>whatsApp按钮之前,它一直工作正常。 这是我的适配器: 在代码中添加了一个onClickListener,如果按下waze按钮,它将检查位置,如果按下whatsapp按钮,则检查名称。这是代码 如何更改此项以获得正确的项目?

  • 控制器(我忽略了导入) 下面是我在控制器中引用的相关html页面。您可以假设每一个服务和存储库都正常工作,并完成了它的工作。 这是确认页面。这里有点不对劲。插入到表单的隐藏输入框中的数据不会被提交: 扬尼克

  • 问题内容: 我需要对列表进行排序,然后返回带有列表中已排序项目索引的列表。例如,如果我要排序的列表是,则需要返回。 这个问题以字节为单位发布,但我认为我会在这里重新发布。 http://bytes.com/topic/python/answers/44513-sorting-list-then-return-index- sorted-item 我的具体需求是根据对象的属性对对象列表进行排序。然后