如何在react中的useState中在单个状态下设置多个属性时设置默认属性


const [currentTime, setTime] = useState();
const [input, setInput] = useState({
title:"",
description:"",
time:currentTime,
});
function handleOnclickAdd(){
setTime(new Date().toLocaleTimeString())
}

当我在这里做console.log(currentTime(时显示完美的输出,但当我在那里做console.log(input(时显示输出时间:undfine。然后是如何将时间设置为当前时间。

input状态为initializing时,currentTimeundefined,所以如果您想将其更改为另一个值,只需将该值更改为您想要的值,如下所示:

const [currentTime, setTime] = useState();
const [input, setInput] = useState({
title: "",
description: "",
time: new Date().toLocaleTimeString()
});
function handleOnclickAdd() {
setTime(new Date().toLocaleTimeString());
}

因为在第一阶段currentTime为null,所以您应该使用useEffect函数来处理这个问题:

const [currentTime, setTime] = useState();
const [input, setInput] = useState({
title:"",
description:"",
time:currentTime,
});
function handleOnclickAdd(){
setTime(new Date().toLocaleTimeString())
}
useEffect(() => {
setInput(...input , [time] : currentTime);
},[currentTime])

最新更新