代码之家  ›  专栏  ›  技术社区  ›  stronghold051

如何在react中使用onClick增加值

  •  -1
  • stronghold051  · 技术社区  · 4 年前

    当按下onClick触发器时,我有一个按钮 LikeComment 它使用当前注释id和发布注释的用户将类似内容发布到数据库。

        <button className="btn" onClick={LikeComment(comment_id, user_id)}>
          <div className="text">
            <i className="fas fa-thumbs-up"></i>
            <p>{comment_likes.length}</p>
          </div>
        </button>
    

    增加收入的最佳方式是什么 comment_likes.length 每当按下按钮时。现在我的问题是,该值仅在页面刷新时更新。

    我试过这么做,但没有达到预期效果

    <p>{comment_likes.length && LikeComment ? (comment_likes.length+1) : (comment_likes.length)}</p>
    

    我想通过检测何时按下LikeComment将原始值增加1来实现这一点。

    如有任何解决此问题的建议,将不胜感激。。

    1 回复  |  直到 4 年前
        1
  •  0
  •   Emeke Nkadi    4 年前

    首先,您需要在组件的本地状态中存储当前的类似数量。通过这种方式,您可以只显示当前喜欢的数量,如果您更改了设置,react将自动更新显示 buttonLikes

    const [buttonLikes, setButtonLikes] = useState(comment_likes)

    然后您需要一个事件处理程序,它将增加相同的数量,并将您的更改发布到DB

    
        const handleClickLikeButton = (comment_id, user_id) => {
            setButtonLikes((prevValue) => prevValue + 1)
            LikeComment(comment_id, user_id)
        }
    
    

    现在,您的显示逻辑将如下所示

       <button className="btn" onClick={handleButtonLike(comment_id, user_id)}>
          <div className="text">
            <i className="fas fa-thumbs-up"></i>
            <p>{buttonLikes}</p>
          </div>
        </button>