我看了很多关于统计的文档,但我找不到一种方法来重新渲染我的统计(我正在使用redux,但我看到这在reducer或action中没有任何作用)。我只使用了一个函数onClick(用于像true或false)和其他函数来显示一些条件下的结果:
下面是我的函数:
const likesData = useSelector((state) => state.likesReducer);
const handleLikes = async () => {
let id = userData.id;
let idComment = comment.idObject;
dispatch(likesComment(id, idComment)).then(() =>
dispatch(getComment()))
};
const isLiked = () => {
return Array.from(likesData).filter(likes => likes.id === userData.id && likes.idComment === comment.idObject).length > 0;
};
const returnLikes = (commentId) => {
return Array.from(likesData).filter(likes => likes.idComment === commentId).length;
};
这是我的回报:
<div className="home-icon-post" onClick={() => handleLikes()} >
{
<FontAwesomeIcon className={`${isLiked(comment.idObject) ? "heartFull"
: "heartEmpty"}`} icon={["fa","heart"]} />
}
</div>
<span>
<p>{returnLikes(comment.idObject)}</p>
</span>
这里是我的行动喜欢:
和我的减速器喜欢:
感谢帮助:)
1条答案
按热度按时间8qgya5xd1#
好的,这是我的回拨“调度”上的一个小错误。下面是我以前的电话:
};
这个问题我叫“dispatch(getComment())”但我应该叫“dispatch(getAllLike)”
谢谢你帮我!