收藏
回答

自定义tabbar,跳转页面时候激活索引问题?

const app = getApp()


Component({

  data: {

    activate: wx.getStorageSync('activate'|| 0,


    color: "#7A7E83",


    selectedColor: "#3cc51f",

    

    list: [

      {

        "text": "首页",

        "pagePath": "/pages/index/index",

        "iconPath": "/assets/images/icons/home.png",

        "selectedIconPath": "/assets/images/icons/activate/home.png"

      },

      {

        "text": "成交价",

        "pagePath": "/pages/transaction/index/transaction",

        "iconPath": "/assets/images/icons/transaction.png",

        "selectedIconPath": "/assets/images/icons/activate/transaction.png"

      },

      {

        "text": "大数据",

        "pagePath": "/pages/top/index/top",

        "iconPath": "/assets/images/icons/top.png",

        "selectedIconPath": "/assets/images/icons/activate/top.png"

      },

      {

        "text": "社区",

        "pagePath": "/pages/article/index/article",

        "iconPath": "/assets/images/icons/article.png",

        "selectedIconPath": "/assets/images/icons/activate/article.png"

      },

      {

        "text": "",

        "pagePath": "/pages/admin/index/admin",

        "iconPath": "/assets/images/icons/admin.png",

        "selectedIconPath": "/assets/images/icons/activate/admin.png"

      }

    ]

  },

  attached() {

  },

  methods: {

    switchTab(e) {

      const index = e.currentTarget.dataset.index

      const path = e.currentTarget.dataset.path

      wx.setStorage("activate",index)

      wx.switchTab({

        url:path

      })

      this.setData({

        activate: wx.getStorage("activate")

      })

    }

  }

})


页面是大数据,但是跳转玩页面后 索引激活有变成了首页,尝试了全局变量和本地报错索引 全部都是不行,如果每个页面我都跳转完之后,在点击第二次那索引就全部乱了,没有任何规律,我下载官方的代码可以运行,放到我的项目就不行,所以正常运行的代码 放到我的项目 就出现这个问题


回答关注问题邀请回答
收藏

2 个回答

  • 正好时光
    正好时光
    11-06

    你要在tabbar对应的页面赋值,比如“大数据”页面的onShow或者onload

    this.getTabbar.setData({actice: 2})

    11-06
    有用 1
    回复 7
    • 甘斌
      甘斌
      11-06
      你好我是刚开始编写小城西,activate这个是在tabbar页面定义的索引,如果我要在大数据”页面的方法里面设置activate 还需要定义吗?
      11-06
      回复
    • 正好时光
      正好时光
      11-06回复甘斌
      不需要,直接在onShow中this.getTabBar?.()?.setData({activate: 3 });
      11-06
      回复
    • 甘斌
      甘斌
      11-06回复正好时光
      谢谢啊。第一遍点击是没有问题了,但是都点完一遍的时候再点击,索引就是上次点击的,每个页面我都设置了this.getTabBar?.()?.setData({activate:  });
      11-06
      回复
    • 正好时光
      正好时光
      11-06回复甘斌
      写到onShow中
      11-06
      回复
    • 甘斌
      甘斌
      11-06回复正好时光
      厉害啊! 能方便问一句吗 是不是只有我这个项目才会这样,还是所有项目都要这样设置,就是有点奇怪。
      11-06
      回复
    查看更多(2)
  • 甘斌
    甘斌
    11-06

    activate: 0,索引直接设置成0


      切换点击:switchTab(e) {

          const index = e.currentTarget.dataset.index

          const path = e.currentTarget.dataset.path

          this.setData({

            activate: index

          })

          wx.switchTab({

            url:path

          })

        }



    

    11-06
    有用
    回复 1
    • 甘斌
      甘斌
      11-06
      一样都是渲染错误,第一遍是只要跳转完成 所以全部是首页,第二遍就是乱的索引
      11-06
      回复
登录 后发表内容