我如何用函数和redux重新渲染统计数据(用于重新渲染喜欢的数据)?

qncylg1j  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(129)

我看了很多关于统计的文档,但我找不到一种方法来重新渲染我的统计(我正在使用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>

这里是我的行动喜欢:

和我的减速器喜欢:


感谢帮助:)

8qgya5xd

8qgya5xd1#

好的,这是我的回拨“调度”上的一个小错误。下面是我以前的电话:

const handleLikes = async () => {
let id = userData.id;
let idComment = comment.idObject;
  dispatch(likesComment(id, idComment)).then(() =>  
    dispatch(getComment()))

};
这个问题我叫“dispatch(getComment())”但我应该叫“dispatch(getAllLike)”
谢谢你帮我!

相关问题