You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中是否有更简洁的方式渲染按天分类的待办事项代码?

优化多日期任务渲染方案

1. 先定义固定的日期顺序

避免渲染时日期乱序,先明确一周的日期序列:

const weekDays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];

2. 按日期分组任务数据

用Array.reduce()把所有任务按日期归类,省去重复判断的麻烦:

const tasksByDay = renderTasks.reduce((grouped, task) => {
  // 跳过day为空的任务
  if (!task.day) return grouped;
  
  if (!grouped[task.day]) {
    grouped[task.day] = [];
  }
  grouped[task.day].push(task);
  return grouped;
}, {});

3. 动态渲染所有日期与任务

遍历预定义的日期列表,自动渲染每个日期及其对应的任务:

{weekDays.map(day => (
  <div key={day} className="day-container">
    <h4 className="day">{day}:</h4>
    {/* 仅当该日期有任务时渲染任务列表 */}
    {tasksByDay[day]?.map(task => (
      <div className="taskBox" key={task.id}>
        <span className="renderTime">
          {task.hour}:{task.minute}{task.time}
        </span>
        <span className="renderTask">{task.task}</span>
      </div>
    ))}
  </div>
))}

关键说明

  • 可选链操作符?.确保某个日期没有任务时不会触发报错,实现安全渲染;
  • 无需重复编写七份相同逻辑的代码,后续调整日期顺序仅需修改weekDays数组;
  • 自动过滤day字段为空的任务,满足你提出的「仅显示day不为空的任务」需求。

内容的提问来源于stack exchange,提问作者taram414

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 21:01:54