-
Notifications
You must be signed in to change notification settings - Fork 18
Description
Before submitting
- I tested using the latest version
- I checked for duplicate issues
- I have enabled
enableDebug={true}prop and included console logs below
Platform
Android
Versions
├─┬ @expo/vector-icons@15.0.3
│ ├── react-native@0.81.5 deduped
│ └── react@19.1.0 deduped
├─┬ @react-navigation/bottom-tabs@7.8.5
│ ├── react-native@0.81.5 deduped
│ └── react@19.1.0 deduped
├─┬ @react-navigation/elements@2.8.2
│ ├── react-native@0.81.5 deduped
│ ├── react@19.1.0 deduped
│ ├─┬ use-latest-callback@0.2.6
│ │ └── react@19.1.0 deduped
│ └─┬ use-sync-external-store@1.6.0
│ └── react@19.1.0 deduped
├─┬ @react-navigation/native@7.1.20
│ ├─┬ @react-navigation/core@7.13.1
│ │ └── react@19.1.0 deduped
│ ├── react-native@0.81.5 deduped
│ └── react@19.1.0 deduped
├─┬ expo-constants@18.0.10
│ └── react-native@0.81.5 deduped
├─┬ expo-font@14.0.9
│ ├── react-native@0.81.5 deduped
│ └── react@19.1.0 deduped
├─┬ expo-image@3.0.10
│ ├── react-native@0.81.5 deduped
│ └── react@19.1.0 deduped
├─┬ expo-linking@8.0.8
│ ├── react-native@0.81.5 deduped
│ └── react@19.1.0 deduped
├─┬ expo-router@6.0.14
│ ├─┬ @expo/metro-runtime@6.1.2
│ │ ├── react-native@0.81.5 deduped
│ │ └── react@19.1.0 deduped
│ ├─┬ @radix-ui/react-slot@1.2.0
│ │ ├─┬ @radix-ui/react-compose-refs@1.1.2
│ │ │ └── react@19.1.0 deduped
│ │ └── react@19.1.0 deduped
│ ├─┬ @radix-ui/react-tabs@1.1.13
│ │ ├─┬ @radix-ui/react-context@1.1.2
│ │ │ └── react@19.1.0 deduped
│ │ ├─┬ @radix-ui/react-direction@1.1.1
│ │ │ └── react@19.1.0 deduped
│ │ ├─┬ @radix-ui/react-id@1.1.1
│ │ │ ├─┬ @radix-ui/react-use-layout-effect@1.1.1
│ │ │ │ └── react@19.1.0 deduped
│ │ │ └── react@19.1.0 deduped
│ │ ├─┬ @radix-ui/react-presence@1.1.5
│ │ │ └── react@19.1.0 deduped
│ │ ├─┬ @radix-ui/react-primitive@2.1.3
│ │ │ ├─┬ @radix-ui/react-slot@1.2.3
│ │ │ │ └── react@19.1.0 deduped
│ │ │ └── react@19.1.0 deduped
│ │ ├─┬ @radix-ui/react-roving-focus@1.1.11
│ │ │ ├─┬ @radix-ui/react-collection@1.1.7
│ │ │ │ ├─┬ @radix-ui/react-slot@1.2.3
│ │ │ │ │ └── react@19.1.0 deduped
│ │ │ │ └── react@19.1.0 deduped
│ │ │ ├─┬ @radix-ui/react-use-callback-ref@1.1.1
│ │ │ │ └── react@19.1.0 deduped
│ │ │ └── react@19.1.0 deduped
│ │ ├─┬ @radix-ui/react-use-controllable-state@1.2.2
│ │ │ ├─┬ @radix-ui/react-use-effect-event@0.0.2
│ │ │ │ └── react@19.1.0 deduped
│ │ │ └── react@19.1.0 deduped
│ │ └── react@19.1.0 deduped
│ ├─┬ @react-navigation/native-stack@7.6.3
│ │ ├── react-native@0.81.5 deduped
│ │ └── react@19.1.0 deduped
│ ├─┬ react-native-is-edge-to-edge@1.2.1
│ │ ├── react-native@0.81.5 deduped
│ │ └── react@19.1.0 deduped
│ ├── react-native@0.81.5 deduped
│ ├── react@19.1.0 deduped
│ └─┬ vaul@1.1.2
│ ├─┬ @radix-ui/react-dialog@1.1.15
│ │ ├─┬ @radix-ui/react-dismissable-layer@1.1.11
│ │ │ ├─┬ @radix-ui/react-use-escape-keydown@1.1.1
│ │ │ │ └── react@19.1.0 deduped
│ │ │ └── react@19.1.0 deduped
│ │ ├─┬ @radix-ui/react-focus-guards@1.1.3
│ │ │ └── react@19.1.0 deduped
│ │ ├─┬ @radix-ui/react-focus-scope@1.1.7
│ │ │ └── react@19.1.0 deduped
│ │ ├─┬ @radix-ui/react-portal@1.1.9
│ │ │ └── react@19.1.0 deduped
│ │ ├─┬ @radix-ui/react-presence@1.1.5
│ │ │ └── react@19.1.0 deduped
│ │ ├─┬ @radix-ui/react-primitive@2.1.3
│ │ │ └── react@19.1.0 deduped
│ │ ├─┬ @radix-ui/react-slot@1.2.3
│ │ │ └── react@19.1.0 deduped
│ │ ├─┬ react-remove-scroll@2.7.1
│ │ │ ├─┬ react-remove-scroll-bar@2.3.8
│ │ │ │ └── react@19.1.0 deduped
│ │ │ ├─┬ react-style-singleton@2.2.3
│ │ │ │ └── react@19.1.0 deduped
│ │ │ ├── react@19.1.0 deduped
│ │ │ ├─┬ use-callback-ref@1.3.3
│ │ │ │ └── react@19.1.0 deduped
│ │ │ └─┬ use-sidecar@1.1.3
│ │ │ └── react@19.1.0 deduped
│ │ └── react@19.1.0 deduped
│ └── react@19.1.0 deduped
├─┬ expo-status-bar@3.0.8
│ ├── react-native@0.81.5 deduped
│ └── react@19.1.0 deduped
├─┬ expo-symbols@1.0.7
│ └── react-native@0.81.5 deduped
├─┬ expo-system-ui@6.0.8
│ └── react-native@0.81.5 deduped
├─┬ expo-web-browser@15.0.9
│ └── react-native@0.81.5 deduped
├─┬ expo@54.0.23
│ ├─┬ @expo/cli@54.0.16
│ │ └── react-native@0.81.5 deduped
│ ├─┬ @expo/devtools@0.1.7
│ │ ├── react-native@0.81.5 deduped
│ │ └── react@19.1.0 deduped
│ ├─┬ expo-asset@12.0.9
│ │ ├── react-native@0.81.5 deduped
│ │ └── react@19.1.0 deduped
│ ├─┬ expo-file-system@19.0.17
│ │ └── react-native@0.81.5 deduped
│ ├─┬ expo-keep-awake@15.0.7
│ │ └── react@19.1.0 deduped
│ ├─┬ expo-modules-core@3.0.25
│ │ ├── react-native@0.81.5 deduped
│ │ └── react@19.1.0 deduped
│ ├── react-native@0.81.5 deduped
│ └── react@19.1.0 deduped
├─┬ react-dom@19.1.0
│ └── react@19.1.0 deduped
├─┬ react-native-gesture-handler@2.28.0
│ ├── react-native@0.81.5 deduped
│ └── react@19.1.0 deduped
├─┬ react-native-google-places-autocomplete@2.5.7
│ └── react-native@0.81.5 deduped
├─┬ react-native-google-places-textinput@0.9.1
│ ├── react-native@0.81.5 deduped
│ └── react@19.1.0 deduped
├─┬ react-native-maps@1.20.1
│ ├── react-native@0.81.5 deduped
│ └── react@19.1.0 deduped
├─┬ react-native-reanimated@4.1.5
│ ├── react-native@0.81.5 deduped
│ └── react@19.1.0 deduped
├─┬ react-native-safe-area-context@5.6.2
│ ├── react-native@0.81.5 deduped
│ └── react@19.1.0 deduped
├─┬ react-native-screens@4.16.0
│ ├─┬ react-freeze@1.0.4
│ │ └── react@19.1.0 deduped
│ ├── react-native@0.81.5 deduped
│ └── react@19.1.0 deduped
├─┬ react-native-web@0.21.2
│ └── react@19.1.0 deduped
├─┬ react-native-worklets@0.5.1
│ ├── react-native@0.81.5 deduped
│ └── react@19.1.0 deduped
├─┬ react-native@0.81.5
│ ├─┬ @react-native/virtualized-lists@0.81.5
│ │ ├── react-native@0.81.5 deduped
│ │ └── react@19.1.0 deduped
│ └── react@19.1.0 deduped
└── react@19.1.0
Bug summary
I'm trying to set the input box to show the entire formatted address when a location is picked from the drop down,
it works the first time, but if you click on the input box again, it'll show the drop down again, and when you pick an element on the drop down, now it just writes the main text to the input box instead of the value you pass onto it,
It's like it's internally overwriting the value to main text
`const [text, setText] = useState("");
const handlePlaceSelected = (data: any) => {
const formattedAddress = data?.details?.formattedAddress;
setText(formattedAddress);
};
return (
<GooglePlacesTextInput
apiKey={GOOGLE_API_KEY}
onPlaceSelect={handlePlaceSelected}
value={text}
onTextChange={(t) => setText(t)}
placeHolderText={'Search'}
fetchDetails={true}
detailsFields={["formattedAddress"]}
includedRegionCodes={["za"]}
showLoadingIndicator={false}
showClearButton={false}
style={{
input: {
padding: 0,
paddingHorizontal: 0,
// paddingVertical: 0,
margin: 0,
paddingEnd: 0,
paddingStart: 0
},
container: {
padding: 0,
margin: 0,
paddingEnd: 0,
paddingStart: 0
},
}}
enableDebug={true}
/>
`
Debug logs (with enableDebug={true})
LOG [GooglePlacesTextInput:PREDICTIONS] 2025-11-19T22:47:01.075Z - Starting fetch for text: "C"
LOG [GooglePlacesTextInput:PREDICTIONS] 2025-11-19T22:47:01.076Z - Request params
LOG [GooglePlacesTextInput:PREDICTIONS] Data: {"apiKey": "[PROVIDED]", "includedRegionCodes": ["za"], "languageCode": undefined, "locationBias": undefined, "locationRestriction": undefined, "minCharsToFetch": 1, "proxyHeaders": null, "proxyUrl": undefined, "sessionToken": "8c06ed6e-34e5-447e-9a91-da26d8542dce", "text": "C", "types": []}
LOG [GooglePlacesTextInput:PREDICTIONS] 2025-11-19T22:47:01.281Z - Success: 5 predictions received
LOG [GooglePlacesTextInput:PREDICTIONS] 2025-11-19T22:47:01.282Z - Predictions data
LOG [GooglePlacesTextInput:PREDICTIONS] Data: [{"placePrediction": {"place": "places/ChIJ1-4miA9QzB0Rh6ooKPzhf2g", "placeId": "ChIJ1-4miA9QzB0Rh6ooKPzhf2g", "structuredFormat": [Object], "text": [Object], "types": [Array]}}, {"placePrediction": {"place": "places/ChIJvQtA90JFzB0RkF7P43l1SEA", "placeId": "ChIJvQtA90JFzB0RkF7P43l1SEA", "structuredFormat": [Object], "text": [Object], "types": [Array]}}, {"placePrediction": {"place": "places/ChIJ0zW0fvdvhh4RoJC54bM0zZ4", "placeId": "ChIJ0zW0fvdvhh4RoJC54bM0zZ4", "structuredFormat": [Object], "text": [Object], "types": [Array]}}, {"placePrediction": {"place": "places/ChIJJ0uV9Q17lR4RfyJicLptT0c", "placeId": "ChIJJ0uV9Q17lR4RfyJicLptT0c", "structuredFormat": [Object], "text": [Object], "types": [Array]}}, {"placePrediction": {"place": "places/ChIJl2Ka4ALFlR4REU2asSHRMTo", "placeId": "ChIJl2Ka4ALFlR4REU2asSHRMTo", "structuredFormat": [Object], "text": [Object], "types": [Array]}}]
LOG [GooglePlacesTextInput:PREDICTIONS] 2025-11-19T22:47:01.600Z - Starting fetch for text: "Cape"
LOG [GooglePlacesTextInput:PREDICTIONS] 2025-11-19T22:47:01.601Z - Request params
LOG [GooglePlacesTextInput:PREDICTIONS] Data: {"apiKey": "[PROVIDED]", "includedRegionCodes": ["za"], "languageCode": undefined, "locationBias": undefined, "locationRestriction": undefined, "minCharsToFetch": 1, "proxyHeaders": null, "proxyUrl": undefined, "sessionToken": "8c06ed6e-34e5-447e-9a91-da26d8542dce", "text": "Cape", "types": []}
LOG [GooglePlacesTextInput:PREDICTIONS] 2025-11-19T22:47:01.821Z - Success: 5 predictions received
LOG [GooglePlacesTextInput:PREDICTIONS] 2025-11-19T22:47:01.822Z - Predictions data
LOG [GooglePlacesTextInput:PREDICTIONS] Data: [{"placePrediction": {"place": "places/ChIJ1-4miA9QzB0Rh6ooKPzhf2g", "placeId": "ChIJ1-4miA9QzB0Rh6ooKPzhf2g", "structuredFormat": [Object], "text": [Object], "types": [Array]}}, {"placePrediction": {"place": "places/ChIJvQtA90JFzB0RkF7P43l1SEA", "placeId": "ChIJvQtA90JFzB0RkF7P43l1SEA", "structuredFormat": [Object], "text": [Object], "types": [Array]}}, {"placePrediction": {"place": "places/ChIJE0s3aKAjzB0RoQR4Kt3wSug", "placeId": "ChIJE0s3aKAjzB0RoQR4Kt3wSug", "structuredFormat": [Object], "text": [Object], "types": [Array]}}, {"placePrediction": {"place": "places/ChIJ6U_uo2NnzB0R9eheP_JsUZU", "placeId": "ChIJ6U_uo2NnzB0R9eheP_JsUZU", "structuredFormat": [Object], "text": [Object], "types": [Array]}}, {"placePrediction": {"place": "places/ChIJ6SEYvZ220R0RwalsH9Efl1A", "placeId": "ChIJ6SEYvZ220R0RwalsH9Efl1A", "structuredFormat": [Object], "text": [Object], "types": [Array]}}]
LOG [GooglePlacesTextInput:SELECTION] 2025-11-19T22:47:04.344Z - User selected place: Cape Town International Airport (CPT)
LOG [GooglePlacesTextInput:SELECTION] 2025-11-19T22:47:04.344Z - Selected place data
LOG [GooglePlacesTextInput:SELECTION] Data: {"place": "places/ChIJvQtA90JFzB0RkF7P43l1SEA", "placeId": "ChIJvQtA90JFzB0RkF7P43l1SEA", "structuredFormat": {"mainText": {"matches": [Array], "text": "Cape Town International Airport (CPT)"}, "secondaryText": {"text": "Matroosfontein, Cape Town, South Africa"}}, "text": {"matches": [[Object]], "text": "Cape Town International Airport (CPT), Matroosfontein, Cape Town, South Africa"}, "types": ["international_airport", "establishment", "point_of_interest", "airport"]}
LOG [GooglePlacesTextInput:SELECTION] 2025-11-19T22:47:04.346Z - Fetching place details...
LOG [GooglePlacesTextInput:DETAILS] 2025-11-19T22:47:04.346Z - Starting details fetch for placeId: ChIJvQtA90JFzB0RkF7P43l1SEA
LOG [GooglePlacesTextInput:DETAILS] 2025-11-19T22:47:04.346Z - Request params
LOG [GooglePlacesTextInput:DETAILS] Data: {"apiKey": "[PROVIDED]", "detailsFields": ["formattedAddress"], "detailsProxyHeaders": null, "detailsProxyUrl": null, "fetchDetails": true, "languageCode": undefined, "placeId": "ChIJvQtA90JFzB0RkF7P43l1SEA", "platform": "android", "sessionToken": "8c06ed6e-34e5-447e-9a91-da26d8542dce"}
LOG [GooglePlacesTextInput:DETAILS] 2025-11-19T22:47:04.564Z - Success: Details received
LOG [GooglePlacesTextInput:DETAILS] Data: {"formattedAddress": "Matroosfontein, Cape Town, 7490, South Africa"}
LOG [GooglePlacesTextInput:SELECTION] 2025-11-19T22:47:04.565Z - Final place object being sent to onPlaceSelect
LOG [GooglePlacesTextInput:SELECTION] Data: {"detailsKeys": ["formattedAddress"], "hasDetails": true, "placeKeys": ["place", "placeId", "text", "structuredFormat", "types", "details"]}
LOG [GooglePlacesTextInput:PREDICTIONS] 2025-11-19T22:47:08.598Z - Starting fetch for text: "Matroosfontein, Cape Town, 7490, South Africa"
LOG [GooglePlacesTextInput:PREDICTIONS] 2025-11-19T22:47:08.598Z - Request params
LOG [GooglePlacesTextInput:PREDICTIONS] Data: {"apiKey": "[PROVIDED]", "includedRegionCodes": ["za"], "languageCode": undefined, "locationBias": undefined, "locationRestriction": undefined, "minCharsToFetch": 1, "proxyHeaders": null, "proxyUrl": undefined, "sessionToken": "359f462f-d40b-4018-9c55-469b52abde5c", "text": "Matroosfontein, Cape Town, 7490, South Africa", "types": []}
LOG [GooglePlacesTextInput:PREDICTIONS] 2025-11-19T22:47:08.817Z - Success: 5 predictions received
LOG [GooglePlacesTextInput:PREDICTIONS] 2025-11-19T22:47:08.817Z - Predictions data
LOG [GooglePlacesTextInput:PREDICTIONS] Data: [{"placePrediction": {"place": "places/ChIJsWt4FYBQzB0RDzWCcKZ2lSM", "placeId": "ChIJsWt4FYBQzB0RDzWCcKZ2lSM", "structuredFormat": [Object], "text": [Object], "types": [Array]}}, {"placePrediction": {"place": "places/ChIJvQtA90JFzB0RkF7P43l1SEA", "placeId": "ChIJvQtA90JFzB0RkF7P43l1SEA", "structuredFormat": [Object], "text": [Object], "types": [Array]}}, {"placePrediction": {"place": "places/ChIJ452dLUFFzB0RJ0KxLu2qIV4", "placeId": "ChIJ452dLUFFzB0RJ0KxLu2qIV4", "structuredFormat": [Object], "text": [Object], "types": [Array]}}, {"placePrediction": {"place": "places/ChIJPSOtHNhazB0RgXvk4U_2PIo", "placeId": "ChIJPSOtHNhazB0RgXvk4U_2PIo", "structuredFormat": [Object], "text": [Object], "types": [Array]}}, {"placePrediction": {"place": "places/ChIJb0lH1dlazB0RjOx9GLn8VA4", "placeId": "ChIJb0lH1dlazB0RjOx9GLn8VA4", "structuredFormat": [Object], "text": [Object], "types": [Array]}}]
LOG [GooglePlacesTextInput:SELECTION] 2025-11-19T22:47:11.338Z - User selected place: Cape Town International Airport (CPT)
LOG [GooglePlacesTextInput:SELECTION] 2025-11-19T22:47:11.338Z - Selected place data
LOG [GooglePlacesTextInput:SELECTION] Data: {"place": "places/ChIJvQtA90JFzB0RkF7P43l1SEA", "placeId": "ChIJvQtA90JFzB0RkF7P43l1SEA", "structuredFormat": {"mainText": {"matches": [Array], "text": "Cape Town International Airport (CPT)"}, "secondaryText": {"matches": [Array], "text": "Matroosfontein, Cape Town, 7490, South Africa"}}, "text": {"matches": [[Object], [Object], [Object], [Object]], "text": "Cape Town International Airport (CPT), Matroosfontein, Cape Town, 7490, South Africa"}, "types": ["airport", "international_airport", "establishment", "point_of_interest"]}
LOG [GooglePlacesTextInput:SELECTION] 2025-11-19T22:47:11.341Z - Fetching place details...
LOG [GooglePlacesTextInput:DETAILS] 2025-11-19T22:47:11.341Z - Starting details fetch for placeId: ChIJvQtA90JFzB0RkF7P43l1SEA
LOG [GooglePlacesTextInput:DETAILS] 2025-11-19T22:47:11.342Z - Request params
LOG [GooglePlacesTextInput:DETAILS] Data: {"apiKey": "[PROVIDED]", "detailsFields": ["formattedAddress"], "detailsProxyHeaders": null, "detailsProxyUrl": null, "fetchDetails": true, "languageCode": undefined, "placeId": "ChIJvQtA90JFzB0RkF7P43l1SEA", "platform": "android", "sessionToken": "359f462f-d40b-4018-9c55-469b52abde5c"}
LOG [GooglePlacesTextInput:DETAILS] 2025-11-19T22:47:11.561Z - Success: Details received
LOG [GooglePlacesTextInput:DETAILS] Data: {"formattedAddress": "Matroosfontein, Cape Town, 7490, South Africa"}
LOG [GooglePlacesTextInput:SELECTION] 2025-11-19T22:47:11.562Z - Final place object being sent to onPlaceSelect
LOG [GooglePlacesTextInput:SELECTION] Data: {"detailsKeys": ["formattedAddress"], "hasDetails": true, "placeKeys": ["place", "placeId", "text", "structuredFormat", "types", "details"]}