javascript - 映射时获取重复按钮
问题描述
我正在尝试遍历来自团队的一系列邀请,并且用户可以拥有许多邀请。所以现在我想当我点击邀请按钮时,邀请将被添加到用户对象中。
所以我想实现一种方式,当用户有邀请时,邀请按钮将消失,如果我们从另一个团队搜索,其 teamId 与 Invitations.teamId 不同,按钮就会出现。我怎样才能做到这一点?
我在我的代码沙箱中添加了示例以便于处理:https ://codesandbox.io/s/brave-hugle-4m835?file=/src/App.js
解决方案
您可以添加一个函数来验证用户是否已收到邀请。
import "./styles.css";
import InviteCard from "./InviteCard";
export default function App() {
const thisTeamId = 3;
const users = [
{
InvitesApplications: [{ teamId: 1 }, { response: "Waiting on response" }],
Memberships: [{ teamId: 2 }, { response: "Waiting on response" }],
fullname: "Nathan"
},
{
InvitesApplications: [{ teamId: 2 }, { response: "Waiting on response" }],
Memberships: [{ teamId: 1 }],
fullname: "Nick"
},
{
InvitesApplications: [
{ teamId: 2, response: "Waiting on response" },
{ teamId: 1, response: "Waiting on response" },
{ teamId: 3, response: "Waiting on response" }
],
Memberships: [],
fullname: "Nancy"
}
];
const isInvitationAvailable = (teamId, invitations) => {
const index= invitations.findIndex(invitation => invitation.teamId === teamId)
return index > -1
}
return (
<div className="App">
{users
.filter(
(user) =>
user.Memberships.length < 1 ||
user.Memberships.every((member) => member.teamId !== thisTeamId)
)
.map((user, index) => (
<div key={index}>
<InviteCard user={user} thisTeamId={thisTeamId} />
{!isInvitationAvailable(thisTeamId, user.InvitesApplications) && <button>Invite</button>}
</div>
))}
</div>
);
}
推荐阅读
- python-3.x - 重新采样具有相同随机状态的两个相同大小的矩阵会导致相同索引的行吗?
- twitter-bootstrap - 如何在默认情况下或刷新后(不在点击时)在引导导航栏中设置活动项目
- c# - 检索完整的嵌套标签组
- flutter - Dart 中的货币格式(按区域设置)
- java - ProcessBuilder 在 Mac OS 中找不到 python3
- android - 如何在sqlite中创建具有复合主键的表?
- javascript - 当我对此进行更改时,我的 discord.js 机器人没有响应,我还是新手,但我看不出有什么问题
- r - Bin 列和通过随机样本聚合数据,替换迭代更大的 bin 大小
- typescript - 高阶函数参数类型的错误类型推断
- javascript - 拒绝执行来自 p.adsymptotic.com 的脚本