Я использую пакет автозаполнения Google Places - react-google-places-autocomplete
. Чтобы получить данные о месте. Данные вводятся в контролируемой форме Formik
. Для некоторых полей, включая адрес, я использую функциональность useField
.
Мой код выглядит так:
<GooglePlacesAutocomplete
onSelect={venue => {
const name = venue['terms'][0]['value']
geocodeByPlaceId(venue['place_id'])
.then(results => {
const loc = results[0]['geometry'].location
...
location.current.value = name
})
.catch(error => console.error(error))
}}
renderInput={props => (
<div className="inner-section-group">
<input
id="venue"
{...props}
placeholder="Venue Name"
ref={location}
onLoadStart={() => venueHelpers.setValue(values['venue_name'])}
onLoad={() => location.current.value = venue}
/>
<label htmlFor="venue">Venue Name</label>
</div>
)}
/>
У меня одна проблема. Инициализация my input
для указанного значения c [например, какой возврат API для значения поля] не работает. Выполнение этого изнутри onLoad
не имеет никакого эффекта, и настройка defaultValue
конфликтует с использованием ref
для управления вводом.
Есть предложения?