diff --git a/packages/react-bootstrap-table2-example/examples/sort/enable-sort-table.js b/packages/react-bootstrap-table2-example/examples/sort/enable-sort-table.js
index 16e628f..7d0d406 100644
--- a/packages/react-bootstrap-table2-example/examples/sort/enable-sort-table.js
+++ b/packages/react-bootstrap-table2-example/examples/sort/enable-sort-table.js
@@ -38,9 +38,28 @@ const columns = [{
`;
-export default () => (
-
-
- { sourceCode }
-
-);
+export default class Test extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = { data: products };
+ }
+
+ handleClick = () => {
+ this.setState(() => {
+ const newProducts = productsGenerator(21);
+ return {
+ data: newProducts
+ };
+ });
+ }
+
+ render() {
+ return (
+
+
+
+ { sourceCode }
+
+ );
+ }
+}
diff --git a/packages/react-bootstrap-table2/src/sort/wrapper.js b/packages/react-bootstrap-table2/src/sort/wrapper.js
index 90a9bb9..71c5051 100644
--- a/packages/react-bootstrap-table2/src/sort/wrapper.js
+++ b/packages/react-bootstrap-table2/src/sort/wrapper.js
@@ -39,12 +39,10 @@ export default Base =>
}
componentWillReceiveProps(nextProps) {
- if (nextProps.isDataChanged) {
- const sortedColumn = nextProps.columns.find(
- column => column.dataField === nextProps.store.sortField);
- if (sortedColumn) {
- nextProps.store.sortBy(sortedColumn);
- }
+ const sortedColumn = nextProps.columns.find(
+ column => column.dataField === nextProps.store.sortField);
+ if (sortedColumn && sortedColumn.sort) {
+ nextProps.store.sortBy(sortedColumn);
}
}
diff --git a/packages/react-bootstrap-table2/test/sort/wrapper.test.js b/packages/react-bootstrap-table2/test/sort/wrapper.test.js
index 1c28b8c..2575e86 100644
--- a/packages/react-bootstrap-table2/test/sort/wrapper.test.js
+++ b/packages/react-bootstrap-table2/test/sort/wrapper.test.js
@@ -219,30 +219,12 @@ describe('SortWrapper', () => {
nextProps = { columns, store };
store.sortField = columns[1].dataField;
store.sortOrder = Const.SORT_DESC;
+ store.sortBy = sinon.stub();
});
- describe('if nextProps.isDataChanged is true', () => {
- beforeEach(() => {
- nextProps.isDataChanged = true;
- store.sortBy = sinon.stub();
- });
-
- it('should sorting again', () => {
- wrapper.instance().componentWillReceiveProps(nextProps);
- expect(store.sortBy.calledOnce).toBeTruthy();
- });
- });
-
- describe('if nextProps.isDataChanged is false', () => {
- beforeEach(() => {
- nextProps.isDataChanged = false;
- store.sortBy = sinon.stub();
- });
-
- it('should not sorting', () => {
- wrapper.instance().componentWillReceiveProps(nextProps);
- expect(store.sortBy.calledOnce).toBeFalsy();
- });
+ it('should sorting again', () => {
+ wrapper.instance().componentWillReceiveProps(nextProps);
+ expect(store.sortBy.calledOnce).toBeTruthy();
});
});
});