Надеюсь, вы использовали GMSMapViewDelegate
в файле заголовка
, используя следующий код в файле реализации, который является делегатом объекта GMSMapView
-(void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition*)position {
float zoom = mapView.camera.zoom;
// handle you zoom related logic
}
Вы не передаете value
в компонент DatePicker
. Вы можете использовать start
как value
для управления DatePicker
и полностью игнорировать defaultValue
.
Причина, по которой console.log(this.state.start)
в вашем обработчике onChange1
не отображает start
вы считаете, что setState
является асинхронным, что означает, что this.state.start
еще не обновлено.
class EventForm extends Component {
state = {
text: '',
errors: {},
start: '2017-05-24T10:30',
end: ''
};
onChange1 = (e) => {
this.setState({
start: e.target.value,
});
};
render() {
return (
<div>
<DataPicker
label="Event Starts"
onChange={this.onChange1}
value={this.state.start}
/>
</div>
)
}
}
Я мало знаю о реакции, но это может помочь в форматировании дат;
<td>
{new Intl.DateTimeFormat('en-GB', {
year: 'numeric',
month: 'long',
day: '2-digit'
}).format(customer.firstSale)}
</td>
Пример из здесь ;
Ну, вы стареете, значит последнее заданное значение в состоянии, потому что вы делаете вещи одновременно / параллельно как заданное значение, так и значение консоли. Значит, вы знаете, что JS является асинхронным, что вы здесь делаете
onChange1(e) {
this.setState({
start: e.target.value,
});
console.log(this.state.start)
}
, что здесь происходит, устанавливая новое значение для состояния и текущего текущего состояния / последнего / значения по умолчанию (первое время). Вот почему вы его получаете второй раз.
, чтобы получить текущий, выполните следующие действия:
onChange1(e) {
this.setState({
start: e.target.value,
},function(whatever){
console.log(this.state.start)
});
}
он выполнит и консольное значение после завершения вашего состояния набора.
И для даты форматирования без momentjs
вы можете найти источник momentjs
, что они делают под капотом, очевидно, что они используют JS. Если бы я был вами, я сделаю это. Ха-ха