import React, { Component } from "react"; import { connect } from "react-redux"; import "react-datepicker/dist/react-datepicker.css"; import DatePicker from "react-datepicker"; class Date extends Component { constructor(props) { super(props); this.handleChange = this.handleChange.bind(this); this.state = { startDate: "", }; } async componentDidMount() { let startDate = JSON.parse(localStorage.getItem("Date") || ""); {}); this.setState({ startDate }); } handleChange(date) { localStorage.setItem("Date", JSON.stringify(date)); this.setState({ startDate: date, }); } render() { return ( <div> <div className="form-group"> <DatePicker className="date" selected={this.state.startDate} onChange={this.handleChange} showTimeSelect timeFormat="HH:mm" timeIntervals={20} timeCaption="time" dateFormat="MMMM d, yyyy / h:mm" placeholderText="Select Date and Time" /> </div> </div> ); } } const mapStateToProps = (state) => ({}); export default connect( mapStateToProps, {} )(Date); Cuando selecciono la fecha y la hora de datepicker, paso el valor de fecha y hora de la función handleChange como una fecha de parámetro. El parámetro de fecha tiene el valor de fecha y hora y estoy tratando de establecer este valor en localStorage pero cuando obtengo datos del almacenamiento local, muestra el siguiente error...
Había varios errores en su código. Analizar una cadena vacía, almacenar una cadena vacía en la fecha de startingDate , lo que hace que DatePicker obtenga una fecha no válida. También cambie el nombre de su clase a algo que no sea Date como su nombre de clase predefinido en JavaScript. Pruebe el siguiente código
class DateComponent extends Component ... componentDidMount() { let startDate = localStorage.getItem("Date") ? new Date(JSON.parse(localStorage.getItem("Date"))) : ""; this.setState({ startDate: startDate }); } ... export default connect( mapStateToProps, {} )(DateComponent);