(十三)、根据登录状态修复详情页H5和小程序bug+用户未登录不能点赞的bug【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】

有目标就不怕路远。年轻人.无论你现在身在何方.重要的是你将要向何处去。只有明确的目标才能助你成功。没有目标的航船.任何方向的风对他来说都是逆风。因此,再遥远的旅程,只要有目标.就不怕路远。没有目标,哪来的劲头?一车尔尼雷夫斯基

导读:本篇文章讲解 (十三)、根据登录状态修复详情页H5和小程序bug+用户未登录不能点赞的bug【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

1,根据登录状态修复详情页H5和小程序bug

1.1 bug描述:

如果用户未登录时查看详情页,会出现错误。

原因:在详情页如下代码中
在这里插入图片描述

1.2 修复方法–修改详情页代码如下:

加个likeTemp是否为空的判断。如果不为空,就去查询数据库,如果为空,不查询点赞表。

        let artTemp = db.collection('quanzi_articles').where(`_id =="${this.artid}"`).getTemp()
        let userTemp = db.collection('uni-id-users').field("_id,username,nickname,avatar_file").getTemp()
        let likeTemp = db.collection("quanzi_like").where(`article_id=="${this.artid}" && user_id==$cloudEnv_uid`)
          .getTemp();

        let tempArr = [artTemp, userTemp];
        if (store.hasLogin) tempArr.push(likeTemp)

        db.collection(...tempArr).get({
....省略


          let isLike = false;
          if (store.hasLogin) isLike = res.result.data._id.quanzi_like.length ? true : false;
          //是否点过赞   如果没有点赞记录,_id.quanzi_like数组长度为0 反正为1
          // let isLike = res.result.data._id.quanzi_like.length ? true : false;
          res.result.data.isLike = isLike;

....省略

2,用户未登录不能点赞的bug

2.1 bug描述:

如果用户发布的文章不带图片或者不带内容(只有文章标题)时,那么可能出现样式或者文章内容等字段为空的报错信息。

2.2 修复方案

引入pagejson:

 import pageJson from "@/pages.json"

点赞方法修改:

      //点击点赞方法
      async clickLike() {
        //判断登录后才对文章进行点赞
        if (!store.hasLogin) {
          uni.showModal({
            title: "登录后才可进行后续操作",
            success: res => {
              if (res.confirm) {
                uni.navigateTo({
                  url: "/" + pageJson.uniIdRouter.loginPage
                })
              }
            }
          })
          return;
        }

3,文章内容为空,文章没有图片的bug

3.1 bug描述

如果发布的文章中内容和图片都为空时,就会出现样式和某些字段不存在的错误。

3.2 修复方法:

修改代码如下:
blog-item子组件中:

 <!-- 中 内容 -->
      <view class="text" @click="goDetail" v-if="item.description">
        <view class="t">{{item.description}}</view>
      </view>
      <!-- 下 缩略图 -->
      <view class="piclist" v-if="item.picurls.length">
        <view class="pic" :class="item.picurls.length==1 ? 'only': ''" v-for="(pic,index) in item.picurls" :key="index">
          <image @click="clickPic(index)" :src="pic" mode="aspectFill"></image>
        </view>
      </view>
    </view>

3.3 效果:

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/135730.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!