2017-03-11 11 views
0

Ich verwende Datumsauswahl in Redux-Form. Ich möchte nur Jahr zeigen. Aber während das Datenjahr-Feld wird NULL in der Datenbank gehen.So verwenden Sie Datumsauswahl in Reduxform

Kann mir jemand helfen.

Dies ist mein Code:

const renderDatePicker = ({input, placeholder, defaultValue, meta: {touched, error} }) => (
    <div> 
     <DateTimePicker {...input} format={"YYYY"} selected={input.value ? moment(input.value) : null} time={false} initialView={"decade"} finalView={"decade"} /> 
    {touched && error && <span>{error}</span>} 
    </div> 
); 

<Field name="year" component={renderDatePicker} /> 

Dank

+0

Wie verwenden Sie diese Funktion in Redux-Form? –

Antwort

1

Sie haben alle Requisiten in der richtigen Art und Weise zu Datetime Requisiten zu übergeben. Ich weiß nicht, wie Datetime Komponente funktioniert, aber wenn man

tun
<DateTimePicker **{...input}** format={"YYYY"} selected={input.value ? 
moment(input.value) : null} time={false} initialView={"decade"} 
finalView={"decade"} /> 
{touched && error && <span>{error}</span>} 

In Datetime hat redux-Form Eingang an seinem Eingang prop zuweisen, sonst immer werden Sie in diesem Fall null erhalten. Sie können auch reduce-form mit der Eigenschaft 'validate' jedes Mal überprüfen, wenn Sie diesen Wert ändern, sollten Sie es sehen.

edit:

Ich wurde für einige Fragen wie diese suchen, weil ich etwas gesucht, wir haben keine Eingabe in diesem Fall reagieren Native wie in Datepicker zu tun haben, aber ich habe auf diese Weise verwendet :

<Field name="birthday" 
     component={ props => 
      <DatePicker 
      date={props.input.value} 
      onDateChange={(date) => props.input.onChange(moment(new Date(date)).format("MM/DD/YYYY"))} 
      /> 
    }/> 

Es ist nicht der beste Weg, aber diese Lösung könnte Ihrem Fall helfen.

+0

Wert geht nicht zum Aktionsersteller. –