0

私はreact-datepicker自分のアプリケーションを構築することに慣れています。

ここで私のソースコードに従ってください: https://codesandbox.io/s/xr76olj70o

startDate次のように指定した日を選択すると、オブジェクトを取得したいとendDate思います。{startDate: "24-07-2018", endDate: "31-07-2018"}

このような私のhandleSelected機能:

  handleRangeSelected = () => {
    const { startDate, endDate } = this.state;
    const range = {
      startDate: moment(startDate).format("DD-MM-YYYY"),
      endDate: moment(endDate).format("DD-MM-YYYY"),
    }
    console.log('Range selected!', range);
  }

私の問題は、いつ日を選ぶかです。最初はstate、日を選ぶとすぐに更新されるようです。

結果:

First time: I chose 31/07/2018, it logs result:
Range selected! {startDate: "24-07-2018", endDate: "24-07-2018"}


Second time: I chose 01/08/2018, it logs result:
Range selected! {startDate: "24-07-2018", endDate: "31-07-2018"}

ここで何が間違っていましたか?君の力が必要!ありがとう。

4

3 に答える 3

0

6zkxr91njw を編集

あなたは呼び出しonChangeておりonSelect、DatePickers に入っています。両方が同時に発火するため、新しい状態を設定した方が発火し、もう一方は古い状態の値を使用します。handleRangeSelectedsetState コールバックで呼び出すようにコードを変更しましたhandleChange

this.setState({ startDate, endDate }, this.handleRangeSelected);
于 2018-07-24T04:50:18.260 に答える