求助:如何让我的Today按钮正常生效?附相关实现代码
问题分析与解决方案
你的Today按钮失效的核心原因是currently函数逻辑错误:它没有获取系统当前的真实日期,而是基于现有currentDay状态生成了一个完全相同的日期,所以点击后页面不会有任何变化。
正确实现Today按钮逻辑
直接创建无参数的Date实例即可获取当前系统时间,或者根据需求精确到当天起始时间:
方案1:获取当前完整系统时间(含时分秒)
const currently = () => { setCurrentDay(new Date()); };
方案2:精确到当天0点(时分秒清零)
const currently = () => { const today = new Date(); setCurrentDay(new Date(today.getFullYear(), today.getMonth(), today.getDate())); };
额外优化:避免直接修改状态对象
你的nextDay函数中使用了currentDay.setDate(),这个方法会直接修改原currentDay状态对象,可能导致React状态更新异常(React依赖状态引用变化触发重渲染)。建议改用函数式更新,基于前一次状态创建新对象:
const previousDay = () => { setCurrentDay(prevDay => new Date(prevDay.getFullYear(), prevDay.getMonth(), prevDay.getDate() - 1)); }; const nextDay = () => { setCurrentDay(prevDay => new Date(prevDay.getFullYear(), prevDay.getMonth(), prevDay.getDate() + 1)); };
内容的提问来源于stack exchange,提问作者0rbit
相关产品推荐
相关产品推荐

