我正在尝试返回一个显示用户例程的页面。我希望向用户显示一条消息,说明他们没有任何make例程。问题出在我的else语句中,我只能返回console.error。如果我执行一些HTML,它将返回我发送的整个例程数组。我只希望它返回一个"未找到活动,请在上面创建一个"。
routines.map((routine) => {
if (currentUser === routine.creatorName) {
return (
<div className="routineCard">
<h3>Routines</h3>
<p>Name: {routine.name}</p>
<p>goal: {routine.goal}</p>
<p>User: {routine.creatorName}</p>
<ul > Activities
<li className="routineActivityCards">{
routine.activities.map((activity) => {
return (
<div className="routineActivityCard">
<ul>
<h5>{activity.name}</h5>
<p>Info: {activity.description}</p>
<p>Count: {activity.count}</p>
<p>Duration: {activity.duration}</p>
</ul>
</div>
)
}
)
}</li>
</ul>
</div>
)
} else {
return console.error;
}
})
return (
<div>
<h1>No activites found</h1>
</div>
)
我把这个放进else它返回
No activites found
No activites found
No activites found
No activites found etc...
也许我可以把我的return设置为只返回例程[0]?我只是不知道如何准确地把它写进我的代码中。谢谢大家的帮助!
2条答案
按热度按时间agxfikkp1#
首先,
filter
数组以获取所有匹配的条目。如果结果的长度为0,则显示消息。hlswsv352#
只需添加一个try-catch语句,这样就可以中断
Array.prototype.map()
方法(它本身不支持break
关键字)生成的循环。另一种方法(也许是最简单的方法)是使用“normal”循环,它支持
break
关键字,方法如下:**当地雇员