AllenFang / AllenFang/react-bootstrap-table

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

Aberta
#1,501 13 comentários 0 reações 0 responsáveis Ver no GitHub
in progress
Linguagem predominante
JavaScript
Estrelas
2.2k
Forks
761
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

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.

Guia de contribuição

Abrir o guia de contribuição

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.