xcx: tabBar的pagePath与wx.navigateTo中url引用相同页面导致无法跳转

  • Post author:
  • Post category:其他


最近在玩微信小程序开发,突然发现了一个问题:

若是在全局app.json中配置了tabBar。那么在开发中调用wx.navigateTo接口时候,若是跳转的url与tabBar中list页面中引用同样的页面路径,那么结果会是无法跳转。【开发版本:0.12.130400】

1.app.json

{
  "pages":[
    "pages/index/index",
    "pages/logs/logs"
  ],
  "window":{
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "WeChat",
    "navigationBarTextStyle":"black"
  },
  "tabBar": {
    "selectedColor": "#aaaaaf",
    "borderStyle": "white",
    "list": [{
      "pagePath": "pages/index/index",
      "text": "首页"
    }, {
      **"pagePath": "pages/logs/logs"**,
      "text": "日志"
    }]
  }
}

2.index.js中通过modal进行跳转

//index.js
//获取应用实例
var app = getApp()
Page({
  data: {
    motto: 'Hello World',
    userInfo: {}
  },
  //事件处理函数
  bindViewTap: function () {
    wx.showModal({
      title: '提示',
      content: '这是一个测试弹窗',
      confirmText: "yes",
      cancelText: "no",
      showCancel: false,
      success: function (res) {
        if (res.confirm) {
          **wx.navigateTo({
            **url: '../logs/logs',**
            success: function (res) {
              // success
              console.log('success')
            },
            fail: function () {
              // fail
              console.log('fail')
            }
          })**
        }
      }
    })

  },
  onLoad: function () {
    console.log('onLoad')
    var that = this
    //调用应用实例的方法获取全局数据
    app.getUserInfo(function (userInfo) {
      //更新数据
      that.setData({
        userInfo: userInfo
      })
    })

    wx.showToast({
      title: '加载中',
      icon: 'loading',
      duration: 10000
    })

    setTimeout(function () {
      wx.hideToast()
    }, 2000)

  }
})

3.当点击头像时候,会在调试页面中输出:

fail (即调用wx.navigateTo这个api失败)

4.若是任意修改app.json中tabBar中日志栏的pagePath(只要不与navigateto跳转页相同),那么可以成功跳转。

额,就是做个标记而已。

参考:

http://blog.csdn.net/xiang_qi_li/article/details/54407034



版权声明:本文为xianSky2015原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。