У меня есть фиктивный идентификатор пользователя, который должен быть сохранен внутри объекта users
объекта reactions
, когда в моем компоненте реагирования нажимается определенный значок.
Ниже приведена функция updateUploadReaction
, которая должна сделать это для меня. Логика заключается в том, что, когда по иконке щелкают, а этот конкретный userId не существует в объекте users
, он устанавливает его внутри объекта user
и добавляет 1, при повторном нажатии он устанавливает его в значение false и вычитает 1. Так пока, это то, что у меня есть, но оно просто продолжает вычитать 3
каждый раз, когда я нажимаю. Мне нужно руководство, как именно это сделать.
Вот ссылка на полное приложение. updateUploadReaction
находится внутри components/home/reducers.js
объект реакции
{
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;
}