2017-08-02 36 views
0

私は子フォームコンポーネントを持つ複数ステップのフォームを持っています。コンポーネントの1つで、YouCanBookMe DatePickerを実装しようとしています。React Datepickerの入力状態は変更されませんか?

他の通常のテキスト入力と同様に、datepickerの値の状態を更新しようとすると、状態は更新されません。私が日付をタイプした場合、状態は更新されますが、実際にピッカーから日付を選択すると状態は更新されません。なぜ私は本当に無知だ。あなたの誰かがなぜそれがないのかを指摘できますか?

ご協力いただき誠にありがとうございます。私はReactを始めたばかりで、3つの異なるDatepickerライブラリを試してみました。私はゆっくりと狂っています。なぜなら、うまくいかないか、それとも親子構造に変換できないからです。ありがとう!

親:

constructor(props) { 
 
    super(props); 
 

 
    this.state = { 
 
     wants_interview_date: moment().format("DD-MM-YYYY") 
 
\t } 
 
    } 
 
    
 
handleChange(field) { 
 
    return (evt) => this.setState({ [field]: evt.target.value }); 
 
} 
 
    
 
render(){ 
 
    return <FormStep8 
 
     wants_interview_date={this.state.wants_interview_date} 
 
     onDateChange={this.handleChange('wants_interview_date')} />; 
 
} 
 

子コンポーネント:

render() { 
 
    <Datetime 
 
    timeFormat={false} 
 
    dateFormat="DD-MM-YYYY" 
 
    inputProps={{id: 'wants_interview_date', onBlur: this.props.onDateChange, value: this.props.wants_interview_date}} //To get the regular HTML input props 
 
    /> 
 
}

+0

「evt」はどこにありますか? @ MuratK。 –

+0

私はしません。私はそのStateChangeメソッドを完全に理解していませんが、通常のテキスト入力で動作します。私は[このチュートリアル](https://goshakkk.name/wizard-form-collect-info/)から入手しました – Doge

答えて

0

このコードスニペットは、私のために正常に動作し、インポート日時(人L T)

import DateTime from 'react-datetime'; 

<DateTime name="newapp_time" 
onChange={(e) => { this.setState({ newapp_time: moment(e).toJSON() }) }} /> 

結果は、Reactiflux

+0

あなたは小道具を使用して状態を更新すると機能しますか?それは私の現在の問題 – Doge

+0

であるので、あなたは小道具で初期状態を設定するのですか? –

+0

あなたは、ピッカーから日付を選んだ場合、状態は正常ではないと言いましたか?それが事実なら、私の解決策はうまくいくでしょう。私はdatetimeパッケージの問題にも直面しました。しかし、これは私のためにうまく動作します。どうぞ、試してみてください。 :) –

0

良い友達は私が問題を解決する助け、この場合のタイムスタンプです。明らかにMoment.jshandleChangeにオブジェクトを戻していたため、状態に何も表示されませんでした。出力は_d Moment.jsメソッドを使用するために必要でした。正しいhandleChangeメソッドは次のとおりです。

関連する問題