У меня есть приложение реагирования, и я использую geolocated для определения местоположения пользователей.
Следуя инструкциям по инициализации, я завернул компонент:
export default geolocated({
positionOptions: {
enableHighAccuracy: true,
},
userDecisionTimeout: 15000,
})(ShowPois);
Как только пользователь принимает (разрешает) поиск местоположения в браузере, я хочу, чтобы произошли две вещи.
Сначала мне нужно установить флаг, когда местоположение будет доступно приложению, поэтому у меня есть следующее:
static getDerivedStateFromProps(props, state) {
if (!state.geolocatedReady && props.coords) {
return {
geolocatedReady: true
}
}
return null;
}
Обратите внимание, что props.coords происходит из геолокации
Во-вторых, я хочу заполнить поле ввода адресом найденного местоположения. Чтобы сделать это, я должен сделать запрос post к API для получения адреса, но проблема в том, что я не могу использовать метод getDerivedStateFromProps (), потому что метод должен возвращать значение, а не обещание (сделанное ax ios отправить запрос).
Итак, как я могу сделать запрос после публикации, а затем установить состояние при изменении реквизита в компоненте?