AllenFang / AllenFang/react-bootstrap-table

TypeError keep throwing if renew data after delete all rows in table

未關閉
#1,501 13 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
in progress
主要語言
JavaScript
星號
2.2k
分支
761
PR 合併指標
30 天內沒有已合併 PR

描述

Hi, I have a problem here:
The table will throw `Uncaught (in promise) TypeError: Cannot read property 'coreId' of undefined` if I renew the `data` source after delete all rows (not matter delete one by one or delete all of them once), but it works fine after I re-fresh page even the table is empty. The Error screen shot:

![1](https://user-images.githubusercontent.com/13139446/28465761-f5247838-6df7-11e7-8b2a-aa7bd229875d.png)

![2](https://user-images.githubusercontent.com/13139446/28465763-f6d3e60a-6df7-11e7-8cb9-6963da87a903.jpg)

Also, the table is working well for adding (renew `data` source), multi-delete rows (just not delete all).
And the way I am working on it is:
```javascript
...
remoteDelete = (row) => {

let settleFlag = 1;
let settleInfo = {coreId: row};
this.props.registerDevice(settleInfo, settleFlag).then(
(res) => {
// --> renew data source from database after deleted rows
this.setState({dataArr: res.data.devices, unsettledDevices: res.data.unsettledDevices});
},
(err) => {
console.error(err);
}
);
console.log('delete', settleInfo);
}

onAddRow = (row) => {
let settleFlag = 0;

this.props.registerDevice(row, settleFlag).then(
(res) => {
// --> renew data source from database after adding row
this.setState({dataArr: res.data.devices, unsettledDevices: res.data.unsettledDevices});
},
(err) => {
console.error(err);
}
);
}

options = {
// paginationPosition:"top",
paginationShowsTotal: this.renderPaginationShowsTotal,
sizePerPageList: ['10', '30', '50', '60'],
sizePerPage: 10,
sizePerPageDropDown: this.renderSizePerPageDropDown,
// exportCSVBtn: this.createCustomExportCSVButton,
defaultSortName: 'coreId',
defaultSortOrder: 'asc',

handleConfirmDeleteRow: this.confirmDelete,
onDeleteRow: this.remoteDelete,

insertModalHeader: this.modalHeader,
insertModalBody: this.modalBody,

insertText: 'register',
deleteText: 'unregister',

onAddRow: this.onAddRow,
}

...
render() {
const {dataArr, errors, delModalOpen, delNext, delDeviceId} = this.state;
let data = _.isEmpty(dataArr)? [] : dataArr;
console.log('device render', data); //--> The data is correct when the error comes
const confirmMegs = `Do you want to unregister device:`;
return (


Core ID
...


}
```
I check the data source when it renew (adding or deleting), they look same, so are there any errors in setting or usage of the table?
Please give me some hints.
Thank you.

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。