简体   繁体   English

是否有更短的方法来呈现此代码?

[英]Is There a Shorter Way to Render This Code?

I am trying to render input data from a.json into a container for a to-do list on React.我正在尝试将来自 a.json 的输入数据渲染到 React 上的待办事项列表的容器中。 I have the days displayed on the container, but the code below is for individual days.我在容器上显示了日期,但下面的代码是针对个别日期的。 So far, I just copied + pasted this seven times and changed the days.到目前为止,我只是复制+粘贴了七次并更改了日期。

            <h4 className="day">Monday:</h4>          
            {renderTasks.map((time) => {
                if (time.day === 'Monday') {return (
                <div className="taskBox" key={time.id}>
                    <span className="renderTime">
                        {time.hour}:{time.minute}{time.time}</span>
                    <span className="renderTask">{time.task}</span>
                </div>)}
            })
        }

I'd like to know if there's a convenient way to extract data and render them underneath a specific day on React?我想知道是否有一种方便的方法来提取数据并在 React 的特定日期下呈现它们? (eg: if time.day.== '' display data underneath this day) I really appreciate the help. (例如:如果 time.day.== '' 在这一天下方显示数据)我非常感谢您的帮助。 I've been learning React for a bit.我一直在学习 React。

You could have an array of weekdays, and the iterate through it to render each individually.您可以有一个工作日数组,并遍历它以单独渲染每个工作日。 Something like this:像这样的东西:

declare the list声明列表

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

render使成为

{weekdays.map(weekday =>(
<>
<h4 className="day">{weekday}:</h4>          
            {renderTasks.filter(time=>time.day===weekday).map((time) => {
                return (
                <div className="taskBox" key={time.id}>
                    <span className="renderTime">
                        {time.hour}:{time.minute}{time.time}</span>
                    <span className="renderTask">{time.task}</span>
                </div>)
            })
</>)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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