2 回答
TA贡献1829条经验 获得超13个赞
这里的问题是您错误地实现了地图功能。renderFilteredSessions(hosts) 应该返回过滤的会话,但它不返回任何内容。在下面的代码部分添加一个返回:
return filteredResult.map((session) => {
return (
<div>
<ul className="sessionmanager__table">
<li className="sessionmanager__table__name">{session.UserName}</li>
<li className="sessionmanager__table__application">{session.DisplayName}</li>
<li className="sessionmanager__table__status">{session.Status}</li>
<li className="sessionmanager__table__duration">{session.StartTime}</li>
<li className="sessionmanager__table__lastactivity">{session.LastUserActivity}</li>
{this.terminateButton(session.UserName)}
</ul>
</div>
);
});
您可以使用过滤器代替地图。以下是您可以以更好的方式编写的方法:
renderFilteredSessions(hosts) {
if (!hosts.Sessions) {
return null;
}
/* Filter out only those Sessions where Visibility is true */
var filteredResult = hosts.Sessions.filter((session) => {
return session.Visibility === true; // or return !!session.Visibility;
});
if (filteredResult.length === 0) {
return (
<div className="session__table">
{res.noActiveSessions}
</div>
);
}
else {
return filteredResult.map((session) => {
return (
<div>
<ul className="sessionmanager__table">
<li className="sessionmanager__table__name">{session.UserName}</li>
<li className="sessionmanager__table__application">{session.DisplayName}</li>
<li className="sessionmanager__table__status">{session.Status}</li>
<li className="sessionmanager__table__duration">{session.StartTime}</li>
<li className="sessionmanager__table__lastactivity">{session.LastUserActivity}</li>
{this.terminateButton(session.UserName)}
</ul>
</div>
);
});
}
}
TA贡献2037条经验 获得超6个赞
this.state.activeHosts.map(hosts=>hosts.Sessions.map(sessions=><li>sessions.Username</li>)
这是作为列表项的一般表示,根据您的需要使用它
添加回答
举报