【微信小程序-原生开发】实用教程17 - 详情页触发列表页刷新,点击图片放大预览,转发给好友/群,分享到朋友圈

简介: 【微信小程序-原生开发】实用教程17 - 详情页触发列表页刷新,点击图片放大预览,转发给好友/群,分享到朋友圈

需先完成详情页

【微信小程序-原生开发】实用教程16 - 查看详情(含页面跳转的传参方法–简单传参 vs 复杂传参)_朝阳39的博客-CSDN博客

https://blog.csdn.net/weixin_41192489/article/details/129363447

详情页触发列表页刷新

需求描述:

在详情页进行点赞/收藏操作,再返回到列表页,发现列表页并没有同步更新点赞/收藏的状态。

解决方案:

在详情页执行任何触发列表页展示内容的数据更新时,都同步执行列表页的刷新

代码实现:

因列表页通常为详情页的上一页,所以详情页触发列表页的刷新实际上是触发上一页的刷新,代码如下:

详情页

  // 收藏
  collect: function (e) {
    let that = this
    let detail = e.currentTarget.dataset.detail
    let id = detail._id
    let collectList = detail.collectList || []
    collectList.push(this.data.userInfo.No)

    db.doc(id).update({
      data: {
        collectList: collectList
      }
    }).then(
      res => {
        wx.showToast({
          title: '收藏成功',
        })

        that.data.detail.collectList = collectList
        that.data.detail.collected = collectList.includes(that.data.userInfo.No)
        that.setData({
          detail: that.data.detail
        })
        // 更新列表页
        that.updateList()
      }
    )
  },
  // 更新列表页
  updateList() {
    // 获取到当前小程序打开的所有页面栈(数据机构为数组)
    let pages = getCurrentPages();
    // 获取到上一页的页面实例(通过下标获取)
    let prevPage = pages[pages.length - 2]
    // 执行上一页的下拉刷新方法,刷新列表
    prevPage.init()
  },

列表页

    // 初始化
    init: function () {
      this.setData({
        currentPage: 1, // 初始化页码为第1页
        dataList: [], // 清空列表数据
        noMore: false // 重置无更多数据
      })
      // 重新加载列表
      this.getList()
    },

效果预览

点击图片放大预览

如点击头像放大预览

<t-avatar bindtap="previewImage" data-url="{{detail.avatarUrl}}" wx:if="{{detail.avatarUrl}}" image="{{detail.avatarUrl}}" />
  //预览图片
  previewImage: function (e) {
    let url = e.currentTarget.dataset.url;
    wx.previewImage({
      current: url,
      urls: [url]
    })
  },

转发给好友/群

  // 点击右上角转发分享给好友/群
  onShareAppMessage() {
    let id = this.data.id
    return {
      title: this.data.detail.nickname,
      path: '/pages/components/friend/detail/index?id=' + id
    };
  }

当页面内容需要必要的参数才能正常显示时,一定记得参照上述代码添加

分享到朋友圈

  // 点击右上角转发分享给朋友圈
  onShareTimeline() {
    return {
      title: this.data.pageTitle,
      query: 'id=1',
      imageUrl: 'https://ucc.alicdn.com/images/user-upload-01/dc89dd3208f546f4bcfbde2240153a24.jpeg'
    }
  }

  • title 为分享到朋友圈时的文字
  • query 为加载页面必要的参数
  • imageUrl 为分享到朋友圈的配图

query 传递的参数,在onload中可以获取

  onLoad(e) {
    console.log(e.id) // 打印 1
 }

若需访问云数据库,请参考下方专题博文


【微信小程序-原生开发】转发给好友/群,分享到朋友圈(含单页模式访问云开发数据库的方法)_朝阳39的博客-CSDN博客

https://blog.csdn.net/weixin_41192489/article/details/129830020

目录
相关文章
|
2月前
|
JSON 机器人 API
gewe微信机器人搭建教程
GeWe开放平台是基于 微信开放平台的二次封装API服务,开发者可以使用本服务来处理微信中的各种事件,并可以通过后台调用对应的 API 来驱动微信自动执行任务,如自动收发消息、自动化应答、自动群邀请、群管理等,封装了 RPA技术流程,简化开发者二次开发难度,提供了开发者与微信对接的能力,使用简单,操作快捷,支持多种语言接入。
116 17
|
4月前
|
存储 API UED
鸿蒙特效教程02-微信语音录制动画效果实现教程
本教程适合HarmonyOS初学者,通过简单到复杂的步骤,一步步实现类似微信APP中的语音录制动画效果。
177 0
鸿蒙特效教程02-微信语音录制动画效果实现教程
|
5月前
|
人工智能 开发框架 机器人
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
AstrBot 是一个开源的多平台聊天机器人及开发框架,支持多种大语言模型和消息平台,具备多轮对话、语音转文字等功能。
3815 15
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
|
9月前
|
XML 小程序 前端开发
小程序制作教程
小程序制作教程
411 3
小程序制作教程
|
11月前
|
小程序 编译器 数据安全/隐私保护
小白保姆级教程:微信公众号开发,从0到1
【8月更文挑战第8天】小白保姆级教程:微信公众号开发,从0到1
2191 3
小白保姆级教程:微信公众号开发,从0到1
|
10月前
详细教程:扫码提交表单后,数据直接推送到企业微信、钉钉、飞书群聊
在草料制作的表单中,填表人扫码填写并提交数据后,这些信息可以立即通过企业微信、钉钉或飞书自动推送到相应的群聊中,实现即时共享和沟通,提升团队协作效率。
336 2
|
小程序 PHP
全新UI自助图文打印系统小程序源码 PHP后端 附教程
全新UI自助图文打印系统小程序源码 PHP后端 附教程
434 2
|
小程序 前端开发
【微信小程序-原生开发】实用教程22 - 绘制图表(引入 echarts,含图表的懒加载-获取到数据后再渲染图表,多图表加载等技巧)
【微信小程序-原生开发】实用教程22 - 绘制图表(引入 echarts,含图表的懒加载-获取到数据后再渲染图表,多图表加载等技巧)
716 0
|
3月前
|
小程序 Java 关系型数据库
weixin163基于微信小程序的校园二手交易平台系统设计与开发ssm(文档+源码)_kaic
本文介绍了一款基于微信小程序的校园二手物品交易平台的开发与实现。该平台采用Java语言开发服务端,使用MySQL数据库进行数据存储,前端以微信小程序为载体,支持管理员和学生两种角色操作。管理员可管理用户、商品分类及信息、交易记录等,而学生则能注册登录、发布购买商品、参与交流论坛等。系统设计注重交互性和安全性,通过SSM框架优化开发流程,确保高效稳定运行,满足用户便捷交易的需求,推动校园资源共享与循环利用。
|
4月前
|
人工智能 自然语言处理 小程序
技术小白如何利用DeepSeek半小时开发微信小程序?
通过通义灵码的“AI程序员”功能,即使没有编程基础也能轻松创建小程序或网页。借助DeepSeek V3和R1满血版模型,用户只需用自然语言描述需求,就能自动生成代码并优化程序。例如,一个文科生仅通过描述需求就成功开发了一款记录日常活动的微信小程序。此外,通义灵码还提供智能问答模式,帮助用户解决开发中的各种问题,极大简化了开发流程,让普通人的开发体验更加顺畅。
1366 11
技术小白如何利用DeepSeek半小时开发微信小程序?

热门文章

最新文章