Estoy codificando una lista de cosas por hacer con Next.js. Quiero implementar una función fecha de vencimiento, si hago la solicitud de publicación, aparece este error:
Unhandled Runtime Error TypeError: dueDate.toISOString is not a functionNo sé cómo puedo solucionar esto, sería bueno si alguien me puede ayudar :)
Mi código:
const [newTodo, setNewTodo] = useState<any>({ title: "", description: "", }) const [dueDate, setDueDate] = useState<Date>(new Date()) const addTodo = () => { axios.post("http://localhost:5000/todos", { title: newTodo.title, description: newTodo.description, dueDate: dueDate.toISOString().slice(0, 10) }).then(res => { setTodos([...todos, res.data]) setNewTodo({ title: "", description: "", dueDate: "", }) }) } <input className="dueDate" type="date" onChange={(e) => setDueDate(e.target.value)} />El problema es que input llama a setDueDate pasando e.target.value que es una string y no una Date , y usted sabe que:
El error "toISOString no es una función" ocurre cuando se llama al método toISOString() en un valor que no es un objeto de fecha.
Para resolver esto, solo es necesario modificar onChange de entrada:
<input className="dueDate" type="date" onChange={(e) => setDueDate(new Date(e.target.value))} />