【问题标题】:ReactJS/Javascript: State not updated on submitReactJS/Javascript:提交时未更新状态
【发布时间】:2019-01-23 13:13:15
【问题描述】:

我添加了另一个输入组件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.log(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.log(this.state.startTime);
          console.log(this.state.endTime);
        });
      };

      render() {

        console.log(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.log(ownProps.startTime); 
    return ({ variables: { startTime: ownProps.startTime,
                            endTime: ownProps.endTime
     } }) 
  } } )(Calendar);

【问题讨论】:

    标签: java reactjs graphql-js


    【解决方案1】:

    你已经在构造函数上绑定了函数,你只需要像这样传递道具&lt;form onSubmit={this.handleSubmit}&gt;

    【讨论】:

    • 试过了,但确实 endTime 仍然未定义。
    • 进行了更多检查,发现 endTime 已使用输入值更新。现在的问题是没有将值传递给查询 getObjectsQuery。
    【解决方案2】:

    发现问题。在setState endtime 中拼写错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-24
      • 1970-01-01
      • 1970-01-01
      • 2016-11-27
      • 1970-01-01
      相关资源
      最近更新 更多