2017-03-20 6 views
0

datepicker in meiner Meteor/React App und ich kann keine Möglichkeit zum Setzen/Update-Zustand finden, um den Standardwert von den Requisiten geladen werden.react-datepicker schlägt fehl Default-Wert zu laden

import DatePicker from "react-datepicker"; 

export default class AddDate extends React.Component { 

    constructor(props) { 
     super(props); 
     this.state = { 
      startDate: this.props.start.format('MM/DD/YYYY') 
     }; 
    } 

    handleStartDate(date) { 
     this.setState({ 
      startDate: date 
     }); 
    } 

    render() { 
     return (
     <DatePicker 
      selected={this.state.startDate} 
      onChange={this.handleStartDate.bind(this)} 
      className="form-control" 
      id="startDate" 
      todayButton={"Get Today's Date"} /> 
     ); 
    } 
} 

AddDate.propTypes = { 
    start: PropTypes.object.isRequired, 
}; 

Zunächst kommen die Requisiten aus dem Fullcalendar "wählen Sie" Ereignis, das (Start, Ende) zur Verfügung stellt.

Der Fehler, den ich bekommen ist: "Nicht abgefangene Typeerror: t.date.clone ist keine Funktion"

Antwort

2

Die startDate prop should be a (moment) object, kein String. Keine Notwendigkeit, format() es.

import moment from "moment"; 

// ... 

this.state = { 
    startDate: moment(this.props.start), 
}; 
+0

Danke Fabian. Wenn ich jetzt auf das Eingabefeld klicke, bekomme ich "Uncaught TypeError: mom.clone (...). StripZone ist keine Funktion" und öffnet den Popup-Datapicker nicht. – Art

+1

Schwer von hier aus das Problem zu finden. Könntest du überprüfen, ob die 'Start'-Stütze ein Momentobjekt ist, indem du sie auf der Konsole aufnimmst? Wenn nicht, versuche 'startDate: moment (this.props.start) '. –

+0

Beide Dinge, die Sie vorgeschlagen haben, waren korrekt und das Problem ist behoben. Danke – Art