为了账号安全,请及时绑定邮箱和手机立即绑定

React 函数组件的 setState 未更新我的状态

React 函数组件的 setState 未更新我的状态

呼如林 2023-10-20 17:38:29
我正在设置签入和签出日期的开始日期和结束日期的状态。我得到 validDateRange 它是有效日期和长度的数组。尝试将总状态设置为数组长度乘以房间价格,但不知何故反应不更新我的总状态。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 (...);}
查看完整描述

1 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

setState是异步的。设置状态后立即同步控制台日志记录以查看该状态之后的样子很可能不会反映正确的值。如果您想查看更改时的值total,请尝试以下操作:


useEffect(() => {

  console.log(total);

}, [total]);


查看完整回答
反对 回复 2023-10-20
  • 1 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信