From fadbcdaa24a90781eb03ad1640f29f646005dff4 Mon Sep 17 00:00:00 2001 From: AllenFang Date: Sat, 14 Jul 2018 17:04:35 +0800 Subject: [PATCH] a workaround for fixing the _ module missing --- .../react-bootstrap-table2-toolkit/context.js | 17 ++++++++++++++++- .../src/csv/exporter.js | 3 ++- .../src/op/csv.js | 2 +- .../src/bootstrap-table.js | 3 ++- .../src/contexts/index.js | 4 ++++ 5 files changed, 25 insertions(+), 4 deletions(-) diff --git a/packages/react-bootstrap-table2-toolkit/context.js b/packages/react-bootstrap-table2-toolkit/context.js index e55be86..84027a3 100644 --- a/packages/react-bootstrap-table2-toolkit/context.js +++ b/packages/react-bootstrap-table2-toolkit/context.js @@ -40,18 +40,33 @@ class ToolkitProvider extends statelessDrcorator(React.Component) { this.state = { searchText: '' }; + this._ = null; this.onSearch = this.onSearch.bind(this); + this.setDependencyModules = this.setDependencyModules.bind(this); } onSearch(searchText) { this.setState({ searchText }); } + /** + * + * @param {*} _ + * this function will be called only one time when table render + * react-bootstrap-table-next/src/context/index.js will call this cb for passing the _ module + * Please consider to extract a common module to handle _ module. + * this is just a quick fix + */ + setDependencyModules(_) { + this._ = _; + } + render() { const baseProps = { keyField: this.props.keyField, columns: this.props.columns, - data: this.props.data + data: this.props.data, + setDependencyModules: this.setDependencyModules }; if (this.props.search) { baseProps.search = { diff --git a/packages/react-bootstrap-table2-toolkit/src/csv/exporter.js b/packages/react-bootstrap-table2-toolkit/src/csv/exporter.js index 0cb9252..e0e31f1 100644 --- a/packages/react-bootstrap-table2-toolkit/src/csv/exporter.js +++ b/packages/react-bootstrap-table2-toolkit/src/csv/exporter.js @@ -19,6 +19,7 @@ export const getMetaInfo = columns => export const transform = ( data, meta, + getValue, { separator, ignoreHeader @@ -36,7 +37,7 @@ export const transform = ( content += data .map((row, rowIndex) => visibleColumns.map((m) => { - let cellContent = row[m.field]; + let cellContent = getValue(row, m.field); if (m.formatter) { cellContent = m.formatter(cellContent, row, rowIndex, m.formatExtraData); } diff --git a/packages/react-bootstrap-table2-toolkit/src/op/csv.js b/packages/react-bootstrap-table2-toolkit/src/op/csv.js index 71cf3b2..b3803aa 100644 --- a/packages/react-bootstrap-table2-toolkit/src/op/csv.js +++ b/packages/react-bootstrap-table2-toolkit/src/op/csv.js @@ -18,7 +18,7 @@ export default Base => ...csvDefaultOptions, ...exportCSV }; - const content = transform(data, meta, options); + const content = transform(data, meta, this._.get, options); save(content, options); } }; diff --git a/packages/react-bootstrap-table2/src/bootstrap-table.js b/packages/react-bootstrap-table2/src/bootstrap-table.js index 6be3c8e..770cf4a 100644 --- a/packages/react-bootstrap-table2/src/bootstrap-table.js +++ b/packages/react-bootstrap-table2/src/bootstrap-table.js @@ -179,7 +179,8 @@ BootstrapTable.propTypes = { search: PropTypes.shape({ searchText: PropTypes.string, searchContext: PropTypes.func - }) + }), + setDependencyModules: PropTypes.func }; BootstrapTable.defaultProps = { diff --git a/packages/react-bootstrap-table2/src/contexts/index.js b/packages/react-bootstrap-table2/src/contexts/index.js index bb5fe15..bdc2402 100644 --- a/packages/react-bootstrap-table2/src/contexts/index.js +++ b/packages/react-bootstrap-table2/src/contexts/index.js @@ -47,6 +47,10 @@ const withContext = Base => this.SearchContext = props.search.searchContext( _, this.isRemoteSearch, this.handleRemoteSearchChange); } + + if (props.setDependencyModules) { + props.setDependencyModules(_); + } } renderBase() {