gpt4 book ai didi

javascript - 单击图标时如何在用户对象内设置 userId

转载 作者:行者123 更新时间:2023-11-30 06:15:53 25 4
gpt4 key购买 nike

我有一个模拟 userId,当在我的 React 组件中单击某个图标时,它应该保存在 reactions 对象的 users 对象中。

下面是一个函数 updateUploadReaction,它应该为我做这件事。逻辑是这样的,当一个图标被点击并且这个特定的 userId 在 users 对象中不存在时,它将它设置在 user 对象中并在再次点击时加 1它将它设置为 false 并减去 1。到目前为止,这就是我所拥有的,但它只是在我每次单击时一直减去 3。我需要有关具体操作方法的指南。

这是一个 link到完整的应用程序。 updateUploadReactioncomponents/home/reducers.js

里面

react 对象

{

reactions: {
dislike: {
count: 0,
users: {},
},
like: {
count: 0,
users: {},
},
maybe: {
count: 0,
users: {},
},
},

}

函数


function updateUploadReaction(id, type, uploads) {
const updatedUploads = new Map([...uploads.entries()]);
const upload = updatedUploads.get(id);
const userId = uuid();

uploads.forEach(() => {
if (!userId {
upload.reactions[type].count += 1;
upload.reactions[type]..users[userId] = true;
} else {
upload.reactions[type].count -= 1;
upload.reactions[type].users[userId] = false;
}
});

updatedUploads.set(id, upload);

return updatedUploads;
}

最佳答案

我想您可能正在寻找这样的东西,我不确定您是想添加一个新的 userId 并删除它,还是做其他事情。也许它是一个 userIds 数组?不过,我认为这可能会帮助您走上正轨:

const upload1 = {
reactions: {
dislike: {
count: 0,
users: { userId: 1 },
},
},
}
const upload2 = {
reactions: {
dislike: {
count: 0,
users: {},
},
},
}

const uploads = [ upload1, upload2 ];

const updateObjectReaction = ( id, type, uploads ) => {
uploads.forEach( upload => {
const { users } = upload.reactions[ type ]
if ( Object.values( users ).includes( id ) ) {
delete users.userId
}
else {
users.userId = id;
}
} );
console.log( { upload1Users: uploads[ 0 ].reactions.dislike.users } )
console.log( { upload2Users: uploads[ 1 ].reactions.dislike.users } )
}

updateObjectReaction( 1, "dislike", uploads )

关于javascript - 单击图标时如何在用户对象内设置 userId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56190979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com