[英]setState for react function component not updated my state
我将 state 设置为签入和签出日期的开始日期和结束日期。 我得到了validDateRange,它是一个有效日期和长度的数组。 尝试将总的 state 设置为数组的长度乘以房间的价格,但以某种方式反应不更新我的总 state。 totalCost 的日志完全正确
const RoomDetails = (props) => {
const roomDetails = props.location.state;
const [startDate, setStartDate] = useState();
const [startEnd, setEndDate] = useState();
const [total, setTotal] = useState();
const handleOnSelectCalendar = (startDate, endDate, validDateRange) => {
// console.log(startDate, endDate, validDateRange.length);
setStartDate(startDate);
setEndDate(endDate);
// console.log(roomDetails.price, validDateRange.length);
// var totalCost = roomDetails.price * validDateRange.length;
setTotal(roomDetails.price * validDateRange.length);
console.log(startDate, endDate, total); // output: 2020-12-08 2020-12-11 undefined
};
return (...);
}
setState
是异步的。 在设置 state 以查看 state 之后的样子后立即同步控制台日志记录很可能不会反映正确的值。 如果您想在total
更改时查看该值,请尝试以下操作:
useEffect(() => {
console.log(total);
}, [total]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.