原生微信小程序使用vant的tabbar(解决点击俩次图标才正确切换)

这篇具有很好参考价值的文章主要介绍了原生微信小程序使用vant的tabbar(解决点击俩次图标才正确切换)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、声明:在导入使用vant (tabbar)组件的时候,发现通过点击切换的方法来更改active的方法,会出现图标没用及时对应上,需要第二次点击才对应上的问题。

先使用npm引入vant组件库

1.第一步:在资源管理器下方空白处选择”在外部终端窗口打开“

原生微信小程序使用vant的tabbar(解决点击俩次图标才正确切换)

2.第二步:使用命令初始

npm init
原生微信小程序使用vant的tabbar(解决点击俩次图标才正确切换)

回车操作后,会出现以下,如果没有什么更改,一直回车即可

原生微信小程序使用vant的tabbar(解决点击俩次图标才正确切换)
原生微信小程序使用vant的tabbar(解决点击俩次图标才正确切换)

初始化后在项目中会出现一个绿色的package.json文件则表示初始成功了!

原生微信小程序使用vant的tabbar(解决点击俩次图标才正确切换)

3.第三步:安装vant

原生微信小程序使用vant的tabbar(解决点击俩次图标才正确切换)
原生微信小程序使用vant的tabbar(解决点击俩次图标才正确切换)

4.第四步:安装好后在微信开发者工具操作栏,点击工具进行构建npm操作

原生微信小程序使用vant的tabbar(解决点击俩次图标才正确切换)
原生微信小程序使用vant的tabbar(解决点击俩次图标才正确切换)

安装的vant就在node_modules模块中

原生微信小程序使用vant的tabbar(解决点击俩次图标才正确切换)

5.第五步:开启自定义tabbar(添加“custom":true)

”custom“:true
原生微信小程序使用vant的tabbar(解决点击俩次图标才正确切换)

6.与pages同名创建custom-tab-bar文件夹(名字不能变),并创建index组件(tabbar自定义组件)

原生微信小程序使用vant的tabbar(解决点击俩次图标才正确切换)

tabbar自定义组件——index.js代码:

// custom-tab-bar/index.js

Component({
  /**
   * 组件的属性列表
   */
  options: {
    // 开启这个才可以修改vant组件里面的样式
    styleIsolation: 'shared'
  },
  properties: {

  },
  /**
   * 组件的初始数据
   */
  data: {
    active: null,
    "list": [
      {
        "pagePath": "/pages/heart/heart",
        "text": "心声",
        "iconPath": "/static/tabbar-icon/heart.png",
        "selectedIconPath": "/static/tabbar-icon/heart-active.png"
      },
      {
        "pagePath": "/pages/index/index",
        "text": "首页",
        "iconPath": "/static/tabbar-icon/home.png",
        "selectedIconPath": "/static/tabbar-icon/home-active.png"
      },
      {
        "pagePath": "/pages/classify/classify",
        "text": "分类",
        "iconPath": "/static/tabbar-icon/classfiy.png",
        "selectedIconPath": "/static/tabbar-icon/classfiy-active.png"
      },
      {
        "pagePath": "/pages/cart/cart",
        "text": "购物车",
        "iconPath": "/static/tabbar-icon/cart.png",
        "selectedIconPath": "/static/tabbar-icon/cart-active.png",
        info: 2
      },
      {
        "pagePath": "/pages/my/my",
        "text": "我的",
        "iconPath": "/static/tabbar-icon/my.png",
        "selectedIconPath": "/static/tabbar-icon/my-active.png"
      }
    ]
  },

  /**
   * 组件的方法列表
   */
  methods: {
    // 切换tabbar页面
    onChange(event) {
      wx.switchTab({
        url: this.data.list[event.detail].pagePath,
      })
    }
  }
})

tabbar自定义组件——index.wxml代码:

<view>
  <van-tabbar active="{{ active }}" bind:change="onChange">
    <van-tabbar-item wx:for="{{list}}" wx:key="index" info="{{item.info? item.info:''}}">
      <image slot="icon" src="{{item.iconPath}}" mode="aspectFit" style="width: 50rpx;height: 50rpx;"/>
      <image slot="icon-active" src="{{item.selectedIconPath}}" mode="aspectFit" style="width: 50rpx;height: 50rpx;"/>
      {{item.text}}
    </van-tabbar-item>
  </van-tabbar>
</view>

tabbar自定义组件——index.wxss:(使用变量改组件样式)

/* custom-tab-bar/index.wxss */
.van-tabbar-item {
  --tabbar-item-margin-bottom:0;
}

对于使用该组件的问题出现在下面:

// 切换tabbar页面
    onChange(event) {
      this.setData({
        active:event.detail
      })
      wx.switchTab({
        url: this.data.list[event.detail].pagePath,
      })
    }
  }

问题出现在这里:

this.setData({
   active:event.detail
})

二、解决:在切换tabbar的时候,我们采取另外一种方法思路:

在每一个页面使用tabbar自定义组件的地方,在onshow生命周期函数里初始active的值,用来对应每个页面切换之后展示对应的图标。

我这里有五个tabbar页

原生微信小程序使用vant的tabbar(解决点击俩次图标才正确切换)

假如,我采用index页面作为一个tabbar页,对应的active可以这么更改其选中态

/**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 通过 getTabBar 接口获取组件实例,并调用 setData 更新选中态
    this.getTabBar().setData({active: 0})
  },

第二个tabbar设置也是如此:

/**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 通过 getTabBar 接口获取组件实例,并调用 setData 更新选中态
    this.getTabBar().setData({active: 1})
  },

依次设置,这样图标就会对应每一页面文章来源地址https://www.toymoban.com/news/detail-488214.html

到了这里,关于原生微信小程序使用vant的tabbar(解决点击俩次图标才正确切换)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序用vant自定义tabbar页面并跳转相应页面

    步骤一 安装 vant 组件库 下载完后要npm构建才能使用 步骤二 修改 app.json 将 app.json 中的 \\\"style\\\": \\\"v2\\\" 去除,小程序的新版基础组件强行加上了许多样式,难以覆盖,不关闭将造成部分组件样式混乱 步骤三 修改 project.config.json 开发者工具创建的项目, miniprogramRoot 默认为 minipro

    2024年01月22日
    浏览(39)
  • 微信小程序使用vant组件样式未生效解决办法

    1.删除小程序自带的样式 首先在app.json里面删除这一行 2.清除缓存 重新编译   3.重新构建npm 重新编译 在工具里面  

    2024年02月15日
    浏览(31)
  • 微信小程序web-view上覆盖原生组件,解决cover-view点击事件无法触发问题

    结合了以下文章,都没有找到办法 https://blog.csdn.net/WEIGUO19951107/article/details/94305964 https://blog.csdn.net/weixin_39461487/article/details/80075140 https://developers.weixin.qq.com/community/develop/doc/cbd33199b42aec724e54419ebe6371d7 图片显示是这个文章给我了参考,并且成功 https://blog.csdn.net/one_girl/article/deta

    2024年02月11日
    浏览(41)
  • 原生微信小程序自定义tabbar引入Color UI样式

    Color UI 是一款适应于H5、微信小程序、安卓、ios、支付宝的高颜值,高度自定义的 Css 组件库。本文介绍了原生微信小程序如何自定义 tabbar 并使用 Color UI 样式 Color UI 的安装请自行参考官方文档,以下步骤以已安装Color UI为前提 重点:配置 tabbar.custom = true 在代码根目录下添加

    2024年02月03日
    浏览(36)
  • vant的DatetimePicker 时间选择在微信小程序中使用时跳来跳去的解决办法

    将bind:input 换成 bind:change 事件 去掉value绑定值

    2024年02月16日
    浏览(35)
  • 原生微信小程序/uniapp使用空格占位符无效解决方法

    最近碰到一个需求,在一个 text 文本中的前后添加 空格占位符 ,总所周知,我并不会前端,于是我查看了原生微信小程序以及uniapp官方文档,得到了以下答案: 原生微信小程序官方文档 uniapp官方文档 从文档可以知道我们可以用 nbsp; , ensp; , emsp; 等等作为占位符实现空格效果

    2024年02月03日
    浏览(61)
  • 【微信小程序】微信小程序tabBar使用中不显示问题

    目录 微信小程序中tabBar配置 tabBar配置好以后不显示的解决方法 微信小程序中下方的tabBar如何配置很多刚刚接触小程序的同学,有些懵。这里给你一个详细的配置文档: 小程序配置 | 微信开放文档 具体配置代码如下: tabBar:是我们指定了内部配置为小程序的tabBar, list:则

    2024年02月09日
    浏览(34)
  • 微信小程序使用vant时报警告

     [Component] property \\\"value\\\" of \\\"miniprogram_npm/@vant/weapp/field/index\\\" received type-uncompatible value: expected String but get null value. Use empty string instead.  这个问题大概率是vant组自己的问题 降低微信开发者工具版本 降低到2.18.1之前的版本 这个问题是2.18.1时出现的    

    2024年02月12日
    浏览(39)
  • 微信小程序(六)tabBar的使用

    注释很详细,直接上代码 上一篇 新增内容: 1. 标签栏文字的内容以及默认与选中颜色 2. 标签栏图标的默认样式与选中样式 3. 标签选项路径页面 4.标签栏背景颜色 🐼(文末补充)设置标签栏后为 什么navigator标签无法跳转页面 了 温馨提醒:tabBar只在其对应着的页面生效,其

    2024年01月19日
    浏览(30)
  • 微信小程序自定义tabBar使用

    自定义使用tabbar步骤 文章目录 一、为什么要使用自定义tabBar? 二、使用步骤 总结 微信小程序官方默认的tabbar有很多局限性,比如无法调整图片和文字大小、不能动态调整个数等。 小程序开发版本:RC Build (1.06.2206271) 在小程序开发文档中找到指南--》基础能力--》自定义tab

    2024年02月09日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包