diff --git a/examples/ReorderExample.js b/examples/ReorderExample.js index 91c41e22..88c89447 100644 --- a/examples/ReorderExample.js +++ b/examples/ReorderExample.js @@ -96,6 +96,7 @@ class ReorderExample extends React.Component { {...this.props}> {this.state.columnOrder.map(function (columnKey, i) { return = 0)) { var key = 'cell_' + i; diff --git a/src/FixedDataTableColumnReorderHandle.js b/src/FixedDataTableColumnReorderHandle.js index 30d42f2a..1821fede 100644 --- a/src/FixedDataTableColumnReorderHandle.js +++ b/src/FixedDataTableColumnReorderHandle.js @@ -54,6 +54,8 @@ var FixedDataTableColumnReorderHandle = React.createClass({ componentWillUnmount() { if (this._mouseMoveTracker) { + cancelAnimationFrame(this.frameId); + this.frameId = null; this._mouseMoveTracker.releaseMouseMoves(); this._mouseMoveTracker = null; } @@ -101,7 +103,7 @@ var FixedDataTableColumnReorderHandle = React.createClass({ this._distance = 0; this._animating = true; - requestAnimationFrame(this._updateState); + this.frameId = requestAnimationFrame(this._updateState); }, _onMove(/*number*/ deltaX) { @@ -110,13 +112,15 @@ var FixedDataTableColumnReorderHandle = React.createClass({ _onColumnReorderEnd() { this._animating = false; + cancelAnimationFrame(this.frameId); + this.frameId = null; this._mouseMoveTracker.releaseMouseMoves(); this.props.onColumnReorderEnd(); }, _updateState() { if (this._animating) { - requestAnimationFrame(this._updateState) + this.frameId = requestAnimationFrame(this._updateState) } this.setState({ dragDistance: this._distance