SDU项目实训——资源共享功能实现(一)

本篇博客开始,我记录项目实训的资源共享功能的实现,前期已经搭建好了后台,并学习的前端技术。

评论功能

回答的类型

包括用户ID、问题的序号、优先级、发布时间等

export interface CommentType {
   
   
  _id: string;
  userId: string;
  questionId: string;
  content: string;
  thumbNum: number;
  priority: number;
  reviewTime?: Date;
  reviewerId?: string;
  reviewStatus: number;
  reviewMessage?: string;
  _createTime: Date;
  _updateTime: Date;
}

单个回答展示

(只有登录的人才可以点赞)

  useEffect(() => {
   
   
    const thumbCommentIds = currentUser.thumbCommentIds ?? [];
    setIsThumb(thumbCommentIds.includes(comment._id));
  }, [currentUser, comment._id]);

  const doThumbUp = async (id: string) => {
   
   
    if (!currentUser?._id) {
   
   
      toLoginPage();
      message.warning('登录后才能点赞哦');
      return;
    }
    if (thumbLoading) {
   
   
      return;
    }
    setThumbLoading(true);
    const res = await thumbUpComment(id);
    if (res === 1 || res === -1) {
   
   
      comment.thumbNum = (comment.thumbNum ?? 0) + res;
      const thumbCommentIds = currentUser.thumbCommentIds ?? [];
      if (res > 0) {
   
   
        thumbCommentIds.push(comment._id);
      } else {
   
   
        thumbCommentIds.splice(thumbCommentIds.indexOf(comment._id), 1);
      }
      const newCurrentUser = {
   
    ...currentUser, thumbCommentIds };
      setInitialState({
   
    ...initialState, currentUser: newCurrentUser });
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值