繁体   English   中英

反应 function 组件的 setState 未更新我的 state

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM