【问题标题】:我无法在反应中访问数据
【发布时间】:2019-12-12 13:34:04
【问题描述】:

我有以下问题:当我在 deleteRows 函数中打印 shells 变量的值时,它会打印一个空对象,但是当我在外面打印它(第一个 console.log)时,它会正确打印数组。这是关于什么的?我通过删除一个值来调用函数。

我尝试按照你在代码中看到的那样制作箭头函数。


import React from 'react';
// import PropTypes from 'prop-types';  //verrificacion de tipos
import MUIDataTable from 'mui-datatables';
import columns from '../Objects/columns';

const axios = require('axios');

function SimpleTable(props) {
  const { datos } = props;
  const shells = datos.map(
    dato => Object.values(dato),
  );
  console.log({shells})

  const deleteRows = (RowsDeleted) => {
    const ids = RowsDeleted.data.map(d => d.dataIndex);
    // const idsToDeleted = ids.map(d => shells[d][9]);
    console.log({shells})
    axios({
      method: 'post',
      url: 'http://localhost:5000/eliminado',
      data: RowsDeleted,
    });
  }

  const options = {
    filterType: 'dropdawn',
    responsive: 'stacked',
    onRowsDelete: deleteRows,

  };

  // console.log(shells)
  return (

    <MUIDataTable
      title="NutsForShells"
      data={shells}
      columns={columns}
      options={options}
    />
  );
}

// SimpleTable.propTypes = {
//   classes: PropTypes.object.isRequired,
// };

export default (SimpleTable);

【问题讨论】:

  • 打印时为什么要用花括号把贝壳包起来?
  • 只是为了尝试。无论如何,没有花括号也不起作用。
  • 嗨哈维尔,阅读这个 - stackoverflow.com/help/someone-answers,并尝试关闭问题。

标签: javascript reactjs material-ui mui-datatable


【解决方案1】:

通过查看这个conversation,我发现,我们无法使用来自callbackmui-datatables 的外部数据。

来自docs

onRowsDelete - 删除行时触发的回调函数。 function(rowsDeleted: object(lookup: {dataindex: boolean}, data: arrayOfObjects: {index, dataIndex})) => void OR false(返回 false 防止行删除。)

当您单击删除行时,您将获得要删除的行以及完整的数据数组。所以你的 deleteRows 函数应该接受第二个参数,它是一个数据数组,

const deleteRows = (RowsDeleted, data) => {
    const ids = RowsDeleted.data.map(d => d.dataIndex);
    // const idsToDeleted = ids.map(d => shells[d][9]);   //This is possibly this, ids.map(d => data[d][9]) 
    console.log(data)  //Now you will get data
    axios({
      method: 'post',
      url: 'http://localhost:5000/eliminado',
      data: RowsDeleted,
    });
  }

【讨论】:

  • 非常感谢拉维,这对我很有帮助:D
  • 我试试这个,数据未定义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-25
  • 2020-02-12
  • 1970-01-01
  • 2020-05-26
  • 2021-09-29
相关资源
最近更新 更多