我遇到了以下问题:当我在deleteRows函数内部打印shell变量的值时,它会打印一个空对象,但当我在外部(第一个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);发布于 2019-08-05 11:40:40
通过这个conversation,我发现我们不能在mui-datatables的callback中使用来自外部的数据。
从docs,
onRowsDelete -删除行时触发的回调函数。函数(rowsDeleted: object(lookup:{dataindex: boolean},data: arrayOfObjects:{index,dataIndex})) => void 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,
});
}https://stackoverflow.com/questions/57351615
复制相似问题