[英]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.