Skip to content

When I set the value for the input box, the library overwrites it to main text of the google api response #39

@Mukhunyeledzi-Muthuphei

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"]}

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions