2017-09-18 12 views
0

私は、タスクマネージャのreactアプリケーションにDatePickerモジュールを使用しています。これは、最初に日付を変更する以外はうまく統合され、期待される日付の代わりに常にオブジェクトを返します。しかし、私は別の日付を選択すると、魔法のように正しい出力を返します。ここに私のReduxのフォームのその部分のための私のコードは次のとおりです。事前に助けをRedux-form DatePickerは、最初に選択された値の代わりに、dateの代わりにMomentオブジェクトを返します。

enter image description here

感謝を:

import React, { Component } from 'react'; 
import { Field, reduxForm } from 'redux-form'; 
import moment from 'moment'; 
import DatePicker from 'react-datepicker'; 

import 'react-datepicker/dist/react-datepicker.css'; 

class TaskForm extends Component { 

    constructor (props) { 
    super(props) 
    } 


    render() { 

    const { handleSubmit } = this.props; 

    const renderDatePicker = ({input}) => (
     <div> 
      <DatePicker {...input} dateForm="MM/DD/YYYY" selected={input.value ? moment(input.value, 'MM/DD/YYYY') : null} /> 
     </div> 
    ); 


    return (
     <div> 
     <form onSubmit={ handleSubmit}> 
      <div> 
      {/* Date selection */} 
      <label>Date:</label> 
      <Field name="date" component={renderDatePicker} /> 
      </div>  
      <button type="submit">Save</button> 
     </form> 
     </div> 
    ) 
    }; 
}; 

export default reduxForm({form: 'taskForm'})(TaskForm); 

ここに私が出てconsole.logged値です!

答えて

1

モーメント値は例えば、単に.formatを使用し、あなたが望む正確なフォーマットを取得するには、常にオブジェクトです:

moment(date).format('MM/DD/YYYY') 
+0

おかげで、あなたの答えは参考になりましたが、私はそれを少し微調整しなければなりませんでした。 は文字列ではなくmoment()オブジェクトを受け入れるので、返される値がオブジェクトかどうかをチェックするために戻り値に条件を追加する必要があります。 。 –

+0

助けてくれてうれしいです。 :) –

関連する問題