ErrorPro/react-google-autocomplete

State is reset when autocomplete is called

santiagomed opened this issue · 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;
}

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 are you using prev state when updating your state? This was my issue back then. So basically

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