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() : []; + } +}