反应文本状态不会立即更新

React text state doesnt update immediately

我正在尝试更新文本并显示月份,日历会更新但月份不会更新,直到我单击下个月按钮两次,但如果我单击下个月按钮两次,该月也会更改两次日历,它在 header.

上显示上个月

这是三月份

这是四月,但显示的月份是三月。

这是我的代码

const [showmonth, setShowMonth] = useState(moment().format("MMMM-YYYY"));
const [dateValue, setDateValue] = useState(moment());

const increaseMonth = () => {
    setDateValue(moment(dateValue).add(1, "M"));
    onDateChange(dateValue);
  };
   function onDateChange(value) {
    setShowMonth(value.format("MMMM-YYYY"));
  }
<RightOutlined
                  style={{
                    fontSize: "23px",
                    fontWeight: "700",
                    cursor: "pointer",
                  }}
                  onClick={increaseMonth}
                />

请帮助我是初学者

与其为日期对象和当前月份创建单独的状态,不如将 dateValue 保留为唯一状态并从中获取月份。

const [dateValue, setDateValue] = useState(moment());

const increaseMonth = () => {
    setDateValue(moment(dateValue).add(1, "M"));
};

然后,您可以将您的月份值设置为

dateValue.format("MMMM-YYYY")

这有更少的代码,你只需要更新日期对象,然后当日期更新时你的月份也会更新。