react-google-autocomplete icon indicating copy to clipboard operation
react-google-autocomplete copied to clipboard

State is reset when autocomplete is called

Open santiagomed opened this issue 2 years ago • 2 comments

I am using the Autocomplete component and when onPlaceSelected I am saving the place into a state array (input) of the parent component. However, whenever a place is selected the previous value is set to an empty array and then adds the new selected place, instead of adding it to the existing array. I am thinking it has something to do with refs, but I'm not sure how to start fixing it. Any help or advice would be appreciated.

Example:

1. inputs = [place1];
2. onPlaceSelected={(place2) => {
          console.log(inputs); // prints empty array
          addInput(place2);
}}
4. input = [place2]; // should be input = [place1, place2]

// addInput basically does this
function addInput(place) {
          setInputs[...inputs, place]l;
}

santiagomed avatar Feb 11 '23 19:02 santiagomed

Experiencing something similar. The onPlaceSelected encapsulates a stale version of my parent state. I'd expect the function to get updated with the latest as props change, but it remains stale.

More on this mentioned here #168

bsaff avatar Apr 08 '24 13:04 bsaff

@bsaff are you using prev state when updating your state? This was my issue back then. So basically

setInputs(prev => [...prev, newInput])

santiagomed avatar Apr 08 '24 16:04 santiagomed