From cfeeca49b450fc68ea90ed0ab8c6416af455b4ac Mon Sep 17 00:00:00 2001 From: Kimmo Puputti Date: Wed, 8 Aug 2018 13:50:29 +0300 Subject: [PATCH] Fix setState within setState --- .../LocationAutocompleteInputGoogleMaps.js | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/components/LocationAutocompleteInput/LocationAutocompleteInputGoogleMaps.js b/src/components/LocationAutocompleteInput/LocationAutocompleteInputGoogleMaps.js index 0047ce22..ca337967 100644 --- a/src/components/LocationAutocompleteInput/LocationAutocompleteInputGoogleMaps.js +++ b/src/components/LocationAutocompleteInput/LocationAutocompleteInputGoogleMaps.js @@ -375,13 +375,21 @@ class LocationAutocompleteInputGoogleMaps extends Component { } handlePredictionsSelectEnd(index) { - this.setState(prevState => { - if (!prevState.isSwipe) { - this.selectItem(index); - this.finalizeSelection(); + let selectAndFinalize = false; + this.setState( + prevState => { + if (!prevState.isSwipe) { + selectAndFinalize = true; + } + return { selectionInProgress: false, touchStartedFrom: null, isSwipe: false }; + }, + () => { + if (selectAndFinalize) { + this.selectItem(index); + this.finalizeSelection(); + } } - return { selectionInProgress: false, touchStartedFrom: null, isSwipe: false }; - }); + ); } render() { @@ -503,5 +511,4 @@ LocationAutocompleteInputGoogleMaps.propTypes = { inputRef: func, }; - export default LocationAutocompleteInputGoogleMaps;