我试图将所有的likedUserIds
和dislikedUserIds
存储在本地存储器中,但是由于某种原因,它甚至没有命中if()
语句。likedPhotoUserId
函数参数确实有一个值,那么为什么它没有命中第一个if()
?
任何反馈将不胜感激!
const handleLikesBasedOnUserId = (likedPhotoUserId) => {
console.log(likedPhotoUserId); // value is present
// dislike
if(likedPhotoUserId) {
// if the user id exists
if(localStorage.getItem('dislikedUserIds')) {
console.log("inside if");
// split the existing values into an array
let vals = localStorage.getItem('dislikedUserIds').split(',');
// if the value has not already been added
if (!vals.includes(likedPhotoUserId)) {
// add the value to the array
vals.push(likedPhotoUserId);
// sort the array
vals.sort();
// join the values into a delimeted string and store it
localStorage.setItem('dislikedUserIds', vals.join(','));
} else {
console.log("inside else");
// the key doesn't exist yet, add it and the new value
localStorage.setItem('dislikedUserIds', likedPhotoUserId);
}
}
} else {
// like
if(likedPhotoUserId) {
// if the user id exists
if(localStorage.getItem('likedUserIds')) {
console.log("inside if");
// split the existing values into an array
let vals = localStorage.getItem('likedUserIds').split(',');
// if the value has not already been added
if (!vals.includes(likedPhotoUserId)) {
// add the value to the array
vals.push(likedPhotoUserId);
// sort the array
vals.sort();
// join the values into a delimeted string and store it
localStorage.setItem('likedUserIds', vals.join(','));
} else {
console.log("inside else");
// the key doesn't exist yet, add it and the new value
localStorage.setItem('likedUserIds', likedPhotoUserId);
}
}
}
}
};
2条答案
按热度按时间vhmi4jdf1#
如果我没有误解的话,你可以用一种更易读的方式来做这件事:
t3psigkw2#
我很难理解你的代码中的逻辑,但我很确定这能满足你的用例。你的代码从来没有达到第一个条件的问题特别令人困惑,因为在我的测试中没有发生过这种情况。
性能说明:所有这些都不是特别有效,但是如果您担心性能,我建议您使用一个专为这种具有持久性的状态管理而设计的库。