微信小程序如何在頁面間傳值


分兩種情況,見下圖:

  1. 可以在路由跳轉的時候進行傳值,如下:
    使用wx.navigateTo(Object object)方法,具體可參見官方文檔:https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.navigateTo.html
    官方的例子:
wx.navigateTo({
  url: 'test?id=1',
  events: {
    // 為指定事件添加一個監聽器,獲取被打開頁面傳送到當前頁面的數據
    acceptDataFromOpenedPage: function(data) {
      console.log(data)
    },
    someEvent: function(data) {
      console.log(data)
    }
    ...
  },
  success: function(res) {
    // 通過eventChannel向被打開頁面傳送數據
    res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'test' })
  }
})
//test.js
Page({
  onLoad: function(option){
    console.log(option.query)
    const eventChannel = this.getOpenerEventChannel()
    eventChannel.emit('acceptDataFromOpenedPage', {data: 'test'});
    eventChannel.emit('someEvent', {data: 'test'});
    // 監聽acceptDataFromOpenerPage事件,獲取上一頁面通過eventChannel傳送到當前頁面的數據
    eventChannel.on('acceptDataFromOpenerPage', function(data) {
      console.log(data)
    })
  }
})
  1. 第二種,子頁面向父頁面傳值,這時候可以操作路由棧的下一層元素(父頁面元素)即可
let pages = getCurrentPages()
let prevPage = pages[pages.length - 2]
// 獲取父頁面數據
let parentPageData = prevPage.data
// 操作父頁面數據
prevPage.setData()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM