From f8563affb5390e157ccd8eef8bfe84e53d4b1817 Mon Sep 17 00:00:00 2001 From: Yurui Zhang Date: Thu, 5 Dec 2019 14:40:51 -0500 Subject: [PATCH] properly initialize state in lifecycle.js (#1707) --- src/index.js | 11 ----------- src/lifecycle.js | 19 +++++++++++++++++-- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/index.js b/src/index.js index 1584185..3a2b018 100644 --- a/src/index.js +++ b/src/index.js @@ -32,17 +32,6 @@ export default class ReactTable extends Methods(Lifecycle(Component)) { this.resizeColumnStart = this.resizeColumnStart.bind(this) this.resizeColumnEnd = this.resizeColumnEnd.bind(this) this.resizeColumnMoving = this.resizeColumnMoving.bind(this) - - this.state = { - page: props.defaultPage, - pageSize: props.defaultPageSize, - sorted: props.defaultSorted, - expanded: props.defaultExpanded, - filtered: props.defaultFiltered, - resized: props.defaultResized, - currentlyResizing: false, - skipNextSort: false, - } } render () { diff --git a/src/lifecycle.js b/src/lifecycle.js index 8623cf6..b51c07f 100644 --- a/src/lifecycle.js +++ b/src/lifecycle.js @@ -1,7 +1,22 @@ export default Base => class extends Base { - UNSAFE_componentWillMount () { - this.setStateWithData(this.getDataModel(this.getResolvedState(), true)) + constructor (props) { + super(props) + + const defaultState = { + page: props.defaultPage, + pageSize: props.defaultPageSize, + sorted: props.defaultSorted, + expanded: props.defaultExpanded, + filtered: props.defaultFiltered, + resized: props.defaultResized, + currentlyResizing: false, + skipNextSort: false, + } + const resolvedState = this.getResolvedState(props, defaultState) + const dataModel = this.getDataModel(resolvedState, true) + + this.state = this.calculateNewResolvedState(dataModel) } componentDidMount () {