Skip to content

Commit 239d8b1

Browse files
committed
fix #354
1 parent 85b3e72 commit 239d8b1

File tree

3 files changed

+23
-57
lines changed

3 files changed

+23
-57
lines changed

src/BootstrapTable.js

+22-33
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,8 @@ class BootstrapTable extends Component {
2121
if (Util.canUseDOM()) {
2222
this.isIE = document.documentMode;
2323
}
24-
if (!Array.isArray(this.props.data)) {
25-
this.store = new TableDataStore(this.props.data.getData());
26-
this.props.data.clear();
27-
this.props.data.on('change', (data) => {
28-
this.store.setData(data);
29-
this.setState({
30-
data: this.getTableData()
31-
});
32-
});
33-
} else {
34-
const copy = this.props.data.slice();
35-
this.store = new TableDataStore(copy);
36-
}
24+
25+
this.store = new TableDataStore(this.props.data.slice());
3726

3827
this.initTable(this.props);
3928

@@ -145,27 +134,27 @@ class BootstrapTable extends Component {
145134
componentWillReceiveProps(nextProps) {
146135
this.initTable(nextProps);
147136
const { options, selectRow } = nextProps;
148-
if (Array.isArray(nextProps.data)) {
149-
this.store.setData(nextProps.data.slice());
150-
let page = options.page || this.state.currPage;
151-
const sizePerPage = options.sizePerPage || this.state.sizePerPage;
152-
153-
// #125
154-
if (!options.page &&
155-
page >= Math.ceil(nextProps.data.length / sizePerPage)) {
156-
page = 1;
157-
}
158-
const sortInfo = this.store.getSortInfo();
159-
const sortField = options.sortName || (sortInfo ? sortInfo.sortField : undefined);
160-
const sortOrder = options.sortOrder || (sortInfo ? sortInfo.order : undefined);
161-
if (sortField && sortOrder) this.store.sort(sortOrder, sortField);
162-
const data = this.store.page(page, sizePerPage).get();
163-
this.setState({
164-
data,
165-
currPage: page,
166-
sizePerPage
167-
});
137+
138+
this.store.setData(nextProps.data.slice());
139+
let page = options.page || this.state.currPage;
140+
const sizePerPage = options.sizePerPage || this.state.sizePerPage;
141+
142+
// #125
143+
if (!options.page &&
144+
page >= Math.ceil(nextProps.data.length / sizePerPage)) {
145+
page = 1;
168146
}
147+
const sortInfo = this.store.getSortInfo();
148+
const sortField = options.sortName || (sortInfo ? sortInfo.sortField : undefined);
149+
const sortOrder = options.sortOrder || (sortInfo ? sortInfo.order : undefined);
150+
if (sortField && sortOrder) this.store.sort(sortOrder, sortField);
151+
const data = this.store.page(page, sizePerPage).get();
152+
this.setState({
153+
data,
154+
currPage: page,
155+
sizePerPage
156+
});
157+
169158
if (selectRow && selectRow.selected) {
170159
// set default select rows to store.
171160
const copy = selectRow.selected.slice();

src/index.js

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
import BootstrapTable from './BootstrapTable';
22
import TableHeaderColumn from './TableHeaderColumn';
3-
import { TableDataSet } from './store/TableDataStore';
43

54
if (typeof window !== 'undefined') {
65
window.BootstrapTable = BootstrapTable;
76
window.TableHeaderColumn = TableHeaderColumn;
8-
window.TableDataSet = TableDataSet;
97
}
108
export {
119
BootstrapTable,
12-
TableHeaderColumn,
13-
TableDataSet
10+
TableHeaderColumn
1411
};

src/store/TableDataStore.js

-20
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
/* eslint no-console: 0 */
44
/* eslint eqeqeq: 0 */
55
import Const from '../Const';
6-
const EventEmitter = require('events').EventEmitter;
76

87
function _sort(arr, sortField, order, sortFunc) {
98
order = order.toLowerCase();
@@ -22,25 +21,6 @@ function _sort(arr, sortField, order, sortFunc) {
2221
return arr;
2322
}
2423

25-
export class TableDataSet extends EventEmitter {
26-
constructor(data) {
27-
super(data);
28-
this.data = data;
29-
}
30-
31-
setData(data) {
32-
this.emit('change', data);
33-
}
34-
35-
clear() {
36-
this.data = null;
37-
}
38-
39-
getData() {
40-
return this.data;
41-
}
42-
}
43-
4424
export class TableDataStore {
4525

4626
constructor(data) {

0 commit comments

Comments
 (0)