Не удалось получить дату datepicker Material-Ui при первом изменении

Надеюсь, вы использовали GMSMapViewDelegate в файле заголовка

, используя следующий код в файле реализации, который является делегатом объекта GMSMapView

-(void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition*)position {
   float zoom = mapView.camera.zoom;
   // handle you zoom related logic
}
1
задан Tholle 13 July 2018 в 12:19
поделиться

3 ответа

Вы не передаете 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>
    )
  }
}
1
ответ дан Tholle 17 August 2018 в 12:56
поделиться
  • 1
    Но теперь я получаю Input содержит вход типа datetime-local с обоими значениями и реквизитами defaultValue. Элементы ввода должны быть либо управляемыми, либо неконтролируемыми (укажите либо значение prop, либо defaultValue prop, но не оба). И я хотел бы использовать значение по умолчанию и установить его на сегодняшнюю дату – Tautvydas Būda 13 July 2018 в 12:28
  • 2
    @ TautvydasBūda Хорошо. Я обновил ответ. – Tholle 13 July 2018 в 12:29
  • 3
    Именно так, и теперь получение this.setState не является функцией и нечистой ошибкой: была выбрана ошибка кросс-оригинала. React не имеет доступа к фактическому объекту ошибки в разработке. Я использую webpack кстати – Tautvydas Būda 13 July 2018 в 12:35
  • 4
    Хорошо, я не получаю ошибок, получил ошибки при использовании функции Османа – Tautvydas Būda 13 July 2018 в 12:38

Я мало знаю о реакции, но это может помочь в форматировании дат;

<td>
{new Intl.DateTimeFormat('en-GB', { 
    year: 'numeric', 
    month: 'long', 
    day: '2-digit' 
}).format(customer.firstSale)}
</td>

Пример из здесь ;

0
ответ дан Miaan 17 August 2018 в 12:56
поделиться

Ну, вы стареете, значит последнее заданное значение в состоянии, потому что вы делаете вещи одновременно / параллельно как заданное значение, так и значение консоли. Значит, вы знаете, что 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. Если бы я был вами, я сделаю это. Ха-ха

0
ответ дан Osman Goni Nahid 17 August 2018 в 12:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: