diff options
author | Fabio Berger <me@fabioberger.com> | 2018-01-31 03:12:32 +0800 |
---|---|---|
committer | Fabio Berger <me@fabioberger.com> | 2018-01-31 03:12:32 +0800 |
commit | e219772b2a25712f41fb819be36917d3b889201f (patch) | |
tree | c9720d042e65d896c33d68eed918e69c3ad3771c /packages/website/ts/components/fill_order.tsx | |
parent | 144a507a2e0e341e8c8b97f67a25e1283ebc3687 (diff) | |
download | dexon-0x-contracts-e219772b2a25712f41fb819be36917d3b889201f.tar.gz dexon-0x-contracts-e219772b2a25712f41fb819be36917d3b889201f.tar.zst dexon-0x-contracts-e219772b2a25712f41fb819be36917d3b889201f.zip |
Fix all setState calls after unmounted errors. Decided to create our own flag rather then using a cancellablePromise since there was little to be gained from this alternative
Diffstat (limited to 'packages/website/ts/components/fill_order.tsx')
-rw-r--r-- | packages/website/ts/components/fill_order.tsx | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/packages/website/ts/components/fill_order.tsx b/packages/website/ts/components/fill_order.tsx index 1e9927c1a..d0cfd2cf5 100644 --- a/packages/website/ts/components/fill_order.tsx +++ b/packages/website/ts/components/fill_order.tsx @@ -59,8 +59,10 @@ interface FillOrderState { export class FillOrder extends React.Component<FillOrderProps, FillOrderState> { private _validator: SchemaValidator; + private _isUnmounted: boolean; constructor(props: FillOrderProps) { super(props); + this._isUnmounted = false; this.state = { globalErrMsg: '', didOrderValidationRun: false, @@ -90,6 +92,9 @@ export class FillOrder extends React.Component<FillOrderProps, FillOrderState> { public componentDidMount() { window.scrollTo(0, 0); } + public componentWillUnmount() { + this._isUnmounted = true; + } public render() { return ( <div className="clearfix lg-px4 md-px4 sm-px2" style={{ minHeight: 600 }}> @@ -456,12 +461,14 @@ export class FillOrder extends React.Component<FillOrderProps, FillOrderState> { if (!_.isEmpty(orderJSON)) { orderJSONErrMsg = 'Submitted order JSON is not valid JSON'; } - this.setState({ - didOrderValidationRun: true, - orderJSON, - orderJSONErrMsg, - parsedOrder, - }); + if (!this._isUnmounted) { + this.setState({ + didOrderValidationRun: true, + orderJSON, + orderJSONErrMsg, + parsedOrder, + }); + } return; } |