ReactJS / Javascript: состояние не обновляется при отправке

Я добавил еще один компонент ввода, endTime, и выполнил код для startTime, но входное значение для endTime не передается; только startTime. Таким образом, передается входное значение для startTime, но не для endTime. Не знаю почему, потому что я просто скопировал код, который сделал для startTime, и применил его для endTime.

class Calendar extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
          startTime: '',//This will keep track of the date/time
          endTime:''
        };

        this.handleSubmit = this.handleSubmit.bind(this);

      }

      handleSubmit = event => {
        event.preventDefault();

        console.info(this.state.startTime);
        this.setState({
          startTime: new Date(document.getElementById("startTime").value).valueOf(),
          endTime: new Date(document.getElementById("endTime").value).valueOf()
        }, () => {
          this.props.data.refetch({//rerun the query using attribute 'timestamp'.  Assign the value of inputvalue, which is the current state after pressing the button
            startTime: this.state.startTime,
            endTime:this.state.endtTime
          });
          console.info(this.state.startTime);
          console.info(this.state.endTime);
        });
      };

      render() {

        console.info(this.props);
        return (
          <div className = "Calendar">
            <form onSubmit = {this.handleSubmit.bind(this)}>
              <label>Start Time</label>
              <input type = "datetime-local" id = "startTime" step = "1" />              
            </form>

            <form onSubmit = {this.handleSubmit.bind(this)}>
              <label>End Time</label>
              <input type = "datetime-local" id = "endTime" step = "1" />
              <input type = "submit" value = "Submit" />
            </form>

          </div>

        );
      }
};
export default graphql(getObjectsQuery, 
  { options: (ownProps) => { 
    console.info(ownProps.startTime); 
    return ({ variables: { startTime: ownProps.startTime,
                            endTime: ownProps.endTime
     } }) 
  } } )(Calendar);
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
27
2

Ответы 2

Вы уже привязываете функцию к конструктору, вам просто нужно передать опору, как этот <form onSubmit = {this.handleSubmit}>

Пробовал, но это не так, endTime все еще не определен.

N6DYN 16.08.2018 16:31

Проверили еще раз и выяснили, что endTime обновляется входным значением. Проблема в том, что значение не передается в запрос getObjectsQuery.

N6DYN 16.08.2018 17:03

Нашел проблему. В setStateendtime был написан неправильно.

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