diff --git a/src/index.tsx b/src/index.tsx index 7d85d7b..4e4fd2b 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -71,18 +71,27 @@ export const GeoapifyGeocoderAutocomplete = ({ let geocoderAutocomplete: MutableRefObject< GeocoderAutocomplete | undefined > = useRef(); + const placeSelectCallbackRef: MutableRefObject< + ((value: any) => {}) | undefined + > = useRef<(value: any) => {}>(); + const suggestionsChangeCallbackRef: MutableRefObject< + ((value: any) => {}) | undefined + > = useRef<(value: any) => {}>(); - function onSelect(value: any) { - if (placeSelectCallback) { - placeSelectCallback(value); + placeSelectCallbackRef.current = placeSelectCallback; + suggestionsChangeCallbackRef.current = suggestionsChangeCallback; + + const onSelect = React.useCallback((value: any) => { + if (placeSelectCallbackRef.current) { + placeSelectCallbackRef.current(value); } - } + },[]); - function onSuggestions(value: any) { - if (suggestionsChangeCallback) { - suggestionsChangeCallback(value); + const onSuggestions = React.useCallback((value: any) => { + if (suggestionsChangeCallbackRef.current) { + suggestionsChangeCallbackRef.current(value); } - } + },[]); useEffect(() => { if (initialized) {