自学内容网 自学内容网

微信小程序路由问题

1.微信小程序调用reLaunch导致小程序回退到微信的场景。

解决:

        思路:使用back的方式,因为这个项目的各种配置和官网差异较大,所以没找到reLaunch的根本问题。

/**
 * 返回指定页面,不传值默认返回上一页
 * @param pagePath string pages/xx/xxx/xx
 */
const backPage = (pagePath) => {
  const pages = getCurrentPages()
  const positionFunc = (arr) => {
    for (let index = 0; index < arr.length; index++) {
      if (arr[index].route.indexOf(pagePath) !== -1) {
        return index
      }
    }
    return null
  }
  let position = 0
  if (pagePath) {
    position = pages.length - 1 - positionFunc(pages)
  }
  wx.navigateBack({
    delta: position
  })
}


/**
 * 格式化任意时间格式
 * YYYY-MM-DD HH:mm:ss | YYYY-MM-DD | YYYY/MM | HH:mm | ...
 * @param date Date | String | Number 时间
 * @param formatStr string 时间格式
 * @param padStart boolean 是否需要补零
 */
const formatSomeDate = (date, formatStr = 'YYYY-MM-DD HH:mm:ss', padStart = true) => {
  if ([null, undefined, ''].includes(date)) {
    return null
  }
  if (typeof date === 'string') {
    // 考虑ios兼容问题
    date = date.replace(/-/g, '/')
  }
  const d = new Date(date)
  if (padStart) {
    return formatStr.replace('YYYY', String(d.getFullYear()))
      .replace('MM', ('0' + (d.getMonth() + 1)).slice(-2))
      .replace('DD', ('0' + d.getDate()).slice(-2))
      .replace('HH', ('0' + d.getHours()).slice(-2))
      .replace('mm', ('0' + d.getMinutes()).slice(-2))
      .replace('ss', ('0' + d.getSeconds()).slice(-2))
  }
  return formatStr.replace('YYYY', String(d.getFullYear()))
    .replace('MM', String(d.getMonth() + 1))
    .replace('DD', String(d.getDate()))
    .replace('HH', String(d.getHours()))
    .replace('mm', String(d.getMinutes()))
    .replace('ss', String(d.getSeconds()))
}
  • wx.switchTab 方法用于跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面,通常用于跳转到小程序的主页。切换tabBar
  • wx.reLaunch 关闭所有页面,打开到应用内的某个页面。这个使用需要注意,没必要别用,使用的话,需要仔细观察 getCurrentPages() 的路由变化。
  • wx.redirectTo 替换当前页面的路由
  • wx.navigateTo 跳转到一个页面
  • wx.navigateBack 返回前面的历史页面

官网: wx.reLaunch(Object object) | 微信开放文档


原文地址:https://blog.csdn.net/qq_30620793/article/details/143779569

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!