From b9a9e176f92b2b2ee635812d11d37178233fe16e Mon Sep 17 00:00:00 2001 From: Irvin Zhan Date: Wed, 4 Mar 2020 02:46:11 -0800 Subject: [PATCH] Prevent cascading updates in componentDidUpdate (#570) --- src/Cleave.react.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Cleave.react.js b/src/Cleave.react.js index 2bb287b7..6cb2de9c 100644 --- a/src/Cleave.react.js +++ b/src/Cleave.react.js @@ -16,15 +16,14 @@ var cleaveReactClass = CreateReactClass({ this.init(); }, - componentDidUpdate: function () { + componentDidUpdate: function (prevProps) { var owner = this, phoneRegionCode = (owner.props.options || {}).phoneRegionCode, newValue = owner.props.value, pps = owner.properties; owner.updateRegisteredEvents(owner.props); - if (newValue !== undefined && newValue !== null) { - + if (prevProps.value !== newValue && newValue !== undefined && newValue !== null) { newValue = newValue.toString(); if (newValue !== owner.properties.result) { @@ -34,7 +33,8 @@ var cleaveReactClass = CreateReactClass({ } // update phone region code - if (phoneRegionCode && phoneRegionCode !== owner.properties.phoneRegionCode) { + const prevPhoneRegionCode = (prevProps.options || {}).phoneRegionCode; + if (prevPhoneRegionCode !== phoneRegionCode && phoneRegionCode && phoneRegionCode !== owner.properties.phoneRegionCode) { owner.properties.phoneRegionCode = phoneRegionCode; owner.initPhoneFormatter(); owner.onInput(owner.properties.result);