Печатать текущий выбранный элемент при нажатии элемента

У меня есть этот класс, использующий сборщик материалов из пользовательского интерфейса. Я не могу распечатать выбранный элемент

import React, { useState } from 'react';
import { makeStyles } from '@material-ui/core/styles';
import { MuiPickersUtilsProvider, DatePicker } from "@material-ui/pickers";
import MomentUtils from "@date-io/moment";


const styles = theme => ({
  container: {
    display: 'flex',
    flexWrap: 'wrap',
  },
  textField: {
    marginLeft: theme.spacing(1),
    marginRight: theme.spacing(1),
    width: 200,
  },
});


class YearPickerClass extends React.Component {
  state = {
    yearFrom: new Date(1900, 1, 1, 1, 1, 1, 1),
    yearTo: new Date(1950, 1, 1, 1, 1, 1, 1),
  }


  componentWillReceiveProps(props) {
    console.info("willReceive")
    console.info(props)
  }

  handleChangeEvent = (date) => {
    console.info("date")
    console.info(date) //prints 1900 even if I select a different year

  }


  render() {
    const classes = this.props;
    var from = new Date(1900, 1, 1, 1, 1, 1, 1);
    var to = new Date(1950, 1, 1, 1, 1, 1, 1);

    return (
      <form className = {classes.container} noValidate>

        <MuiPickersUtilsProvider utils = {MomentUtils}>

          <DatePicker
            key = "yearFrom"
            views = {["year"]}
            label = "Year From"
            value = {this.state.yearFrom}
            onChange = {this.handleChangeEvent}
            animateYearScrolling
            minDate = {from}
            maxDate = {to}

          />

        </MuiPickersUtilsProvider>


      </form>
    );
  }
}

export default (YearPickerClass);

Любая идея, как получить текущий выбранный элемент внутри функции handleChangeEvent?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
86
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как только вы конвертируете дату, полученную с помощью moment, вы увидите, что фактически получили новое значение в своей функции handleChangeEvent:

handleChangeEvent = date => {
  console.info(moment(date).format('YYYY'));
};

Пожалуйста, посмотрите, как это работает: https://codesandbox.io/embed/магическая-снежинка-4fzgn

начальный выбор всегда печатается, я пытаюсь распечатать вновь выбранный объект

DevB2F 17.06.2019 20:37

Я обновил свой ответ примером кода. Обратите внимание, что значение действительно обновляется в консоли.

grenzbotin 17.06.2019 20:48

Другие вопросы по теме