const [currentTime, setTime] = useState(); const [input, setInput] = useState({ title:"", description:"", time:currentTime, }); function handleOnclickAdd(){ setTime(new Date().toLocaleTimeString()) }aquí, cuando hago console.log(currentTime) muestra la salida perfecta, pero cuando hago console.log(input) en ese momento, muestra el tiempo de salida: indefinido. luego Cómo configurar la hora como la hora actual.
cuando el estado de input se está initializing , el currentTime no está undefined , por lo que si desea cambiarlo a otro valor, simplemente cambie el valor a lo que quiera de esta manera:
const [currentTime, setTime] = useState(); const [input, setInput] = useState({ title: "", description: "", time: new Date().toLocaleTimeString() }); function handleOnclickAdd() { setTime(new Date().toLocaleTimeString()); }porque en la primera etapa, currentTime es nulo, por lo que debe usar la función useEffect para manejar esto:
const [currentTime, setTime] = useState(); const [input, setInput] = useState({ title:"", description:"", time:currentTime, }); function handleOnclickAdd(){ setTime(new Date().toLocaleTimeString()) } useEffect(() => { setInput(...input , [time] : currentTime); },[currentTime])