微信小程序开发问题汇总

文章目录

写在前面

环境搭建开发都按微信小程序官方文档一步一步来

子页面退回父页面时的数据传递问题

  1. 直接设置上一页数据

    1
    2
    3
    4
    5
    6
    7
    8
    9
    var pages = getCurrentPages();
    var currentPage = pages[pages.length - 1];//当前页面
    var prevPage = pages[pages.length - 2];//上一个页面

    prevPage.setData({
    data: yourData
    })

    //返回上一个页面后可以发现数据已经设置进去了
  2. 使用全局变量

    1
    2
    3
    4
    5
    wx.setStorageSync('data', yourData);//存

    //返回上一个页面

    wx.getStorageSync('data');//取

首页面tabBar直接触发事件

当我听到这个需求的时候,我查了下微信api,并没有提供方法(截止到2018/3/27),所以我是拒绝的,但设计要做。。。行吧,好吧,可以

需求:点击tabBar中间的图标可以直接跳转一个页面,而不是在tabbar上切换

实现方式:

  1. 用app.globalData.checkTab的变量记录之前选择的tabBar
  2. 先进入tabBar这个图标对应的空白页面
  3. 在onShow里判断打开真正要的页面,在第二次onShow里回到app.globalData.checkTab的变量记录的位置
1
2
3
4
//在tabBar对应的这几个页面增加记录选择的tabBar
onShow: function (e) {
app.globalData.checkTab = '../index/index'
},
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//直接触发页面
const app = getApp()

Page({
data: {
flag: false
},
onShow: function () {
console.log('onShow')
if (!this.data.flag) {
wx.navigateTo({
url: '../publish/publish'
})
this.setData({
flag: true
})
} else {
this.setData({
flag: false
})
wx.switchTab({
url: app.globalData.checkTab
})
}
}
})

同样,这个方式还能实现例如点击直接触发某个微信api

待完善