状态未按下第一次按下按钮

时间:2017-08-01 05:49:58

标签: javascript node.js reactjs react-native

Else if条件不在第一次点击按钮上给出响应,它总是给出响应第二次点击按钮。 我正在尝试获取date diff between two date,最短日期到最长日期。

根据所选日期每次点击都会显示日期,但maxDate& minDate未设置状态。

第二次点击minDate中设置的第一个日期后,第三次点击将第二个日期设置为maxDate。 但我想要设定日期以及点击按钮。

this.onDayPress = this.selecionarData.bind(this);

selecionarData(date){
let {year, month, day} = date;
 if (this.state.minDate && this.state.maxDate) {
      if (this.state.minDate > day) {
        this.setState({
          minDate: day
        });
      } else {
        this.setState({
          maxDate: day
        });
      }
    } else if (this.state.minDate && this.state.maxDate === undefined) {
      if (this.state.minDate > day) {
        this.setState({
          minDate: day,
          maxDate: this.state.minDate
        });
      } else {
        this.setState({
          maxDate: day
        })
      }
    } else {
      this.setState({
        minDate: day
      });
    }

2 个答案:

答案 0 :(得分:0)

确保为minDatemaxDate设置初始状态。

请参阅此处了解文档:https://facebook.github.io/react/docs/react-component.html#setstate

答案 1 :(得分:0)

非常感谢你提出想法。 实际上它的工作链接在我的情况下:

   if (this.state.minDate > day) {
         this.setState({
             minDate: day
          },() =>{this.methodCall()});
        } else {
          this.setState({
             maxDate: day
          },() =>{this.methodCall()});
       }
   }