diff --git a/packages/react-bootstrap-table2/src/bootstrap-table.js b/packages/react-bootstrap-table2/src/bootstrap-table.js
index 4cbb69d..4d7be74 100644
--- a/packages/react-bootstrap-table2/src/bootstrap-table.js
+++ b/packages/react-bootstrap-table2/src/bootstrap-table.js
@@ -4,12 +4,14 @@ import cs from 'classnames';
import Header from './header';
import Body from './body';
-import storeBase from './store/base';
+import Store from './store/base';
+import PropsBaseResolver from './props-resolver';
-class BootstrapTable extends storeBase(Component) {
+class BootstrapTable extends PropsBaseResolver(Component) {
constructor(props) {
super(props);
this.validateProps();
+ this.store = new Store(props);
}
render() {
@@ -34,7 +36,7 @@ class BootstrapTable extends storeBase(Component) {
diff --git a/packages/react-bootstrap-table2/src/props-resolver/column-resolver.js b/packages/react-bootstrap-table2/src/props-resolver/column-resolver.js
index 0feef53..c49b395 100644
--- a/packages/react-bootstrap-table2/src/props-resolver/column-resolver.js
+++ b/packages/react-bootstrap-table2/src/props-resolver/column-resolver.js
@@ -1,3 +1,6 @@
-export function columnSize(columns) {
- return columns.length;
-}
+export default ExtendBase =>
+ class ColumnResolver extends ExtendBase {
+ columnSize() {
+ return this.props.columns.length;
+ }
+ };
diff --git a/packages/react-bootstrap-table2/src/props-resolver/index.js b/packages/react-bootstrap-table2/src/props-resolver/index.js
index 2cb8de1..252ffb4 100644
--- a/packages/react-bootstrap-table2/src/props-resolver/index.js
+++ b/packages/react-bootstrap-table2/src/props-resolver/index.js
@@ -1,13 +1,13 @@
-import { columnSize } from './column-resolver';
+import ColumnResolver from './column-resolver';
export default ExtendBase =>
- class TableResolver extends ExtendBase {
+ class TableResolver extends ColumnResolver(ExtendBase) {
validateProps() {
const { columns, keyField } = this.props;
if (!keyField) {
throw new Error('Please specify a field as key via keyField');
}
- if (columnSize(columns) <= 0) {
+ if (this.columnSize(columns) <= 0) {
throw new Error('No any visible columns detect');
}
}
diff --git a/packages/react-bootstrap-table2/src/store/base.js b/packages/react-bootstrap-table2/src/store/base.js
index d58c626..0ff1ef4 100644
--- a/packages/react-bootstrap-table2/src/store/base.js
+++ b/packages/react-bootstrap-table2/src/store/base.js
@@ -1,10 +1,6 @@
-import TableResolver from '../props-resolver';
-
-export default ExtendBase =>
- class Store extends TableResolver(ExtendBase) {
- constructor(props) {
- super(props);
- const { data } = this.props;
- this.data = data ? data.slice() : [];
- }
- };
+export default class Store {
+ constructor(props) {
+ const { data } = props;
+ this.data = data ? data.slice() : [];
+ }
+}