From a7ae524c49da23cc00c071bfb8497c21103ed20d Mon Sep 17 00:00:00 2001 From: AllenFang Date: Sun, 2 Dec 2018 17:29:25 +0800 Subject: [PATCH] fix #675 --- .../src/contexts/selection-context.js | 43 +++++++++---------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/packages/react-bootstrap-table2/src/contexts/selection-context.js b/packages/react-bootstrap-table2/src/contexts/selection-context.js index f266824..2bdd321 100644 --- a/packages/react-bootstrap-table2/src/contexts/selection-context.js +++ b/packages/react-bootstrap-table2/src/contexts/selection-context.js @@ -43,12 +43,13 @@ class SelectionProvider extends React.Component { let currSelected = [...this.state.selected]; + let result = true; + if (onSelect) { + const row = dataOperator.getRowByRowId(data, keyField, rowKey); + result = onSelect(row, checked, rowIndex, e); + } + this.setState(() => { - let result = true; - if (onSelect) { - const row = dataOperator.getRowByRowId(data, keyField, rowKey); - result = onSelect(row, checked, rowIndex, e); - } if (result === true || result === undefined) { if (mode === ROW_SELECT_SINGLE) { // when select mode is radio currSelected = [rowKey]; @@ -81,24 +82,22 @@ class SelectionProvider extends React.Component { currSelected = selected.filter(s => typeof data.find(d => d[keyField] === s) === 'undefined'); } - this.setState(() => { - let result; - if (onSelectAll) { - result = onSelectAll( - !isUnSelect, - dataOperator.getSelectedRows( - data, - keyField, - isUnSelect ? this.state.selected : currSelected - ), - e - ); - if (Array.isArray(result)) { - currSelected = result; - } + let result; + if (onSelectAll) { + result = onSelectAll( + !isUnSelect, + dataOperator.getSelectedRows( + data, + keyField, + isUnSelect ? this.state.selected : currSelected + ), + e + ); + if (Array.isArray(result)) { + currSelected = result; } - return { selected: currSelected }; - }); + } + this.setState(() => ({ selected: currSelected })); } render() {