AllenFang / AllenFang/react-bootstrap-table

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

Đang mở
#1,501 13 bình luận 0 reaction 0 người được giao Xem trên GitHub
in progress
Ngôn ngữ chính
JavaScript
Star
2.2k
Fork
761
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

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.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.