1. 程式人生 > 程式設計 >解決vant title-active-color與title-inactive-color不生效問題

解決vant title-active-color與title-inactive-color不生效問題

1、建立vue專案

2、使用vant元件

npm install vant --S

全域性引用時在main.js引入

import Vant from 'vant';
import 'vant/lib/index.css';
Vue.use(Vant);

假如你引入之後發現頁面的樣式和元件都掛載了,但是console控制檯會報錯,說xxxx元件沒有register,這個時候很有可能是你的vant外掛版本有問題,重新下載一個最新的vant就可以了,現在是2.6.0版本

好,接下來繼續

在需要使用下拉框的地方使用下拉框元件

 <van-dropdown-menu>
 <van-dropdown-item
  v-model="value"
 :options="developList"
 />
</van-dropdown-menu>
 
data () {
 return {
 value: ''
 developList: [
  {
  value: '1',text: '我是第一個'
  },{
  value: '2',text: '我是第二個'
  },]
 }
}

假如是這樣的話那麼下拉框就會預設顯示第一個字眼“wishing第一個”,然後你在點選下拉框選擇第二個時也會改變成“我是第二個”

如果你不想有預設選中,並且一開始就顯示請選擇這樣的提示字眼,那麼我們可以去看看vant的api文件,發現有一個title的字眼,這個title就是下拉框的顯示文字,一開始很多人以為這個下拉框的title只是用來顯示然後點選下拉框的item之後會自動繫結過的,但其實是錯誤的,以下就是一個很好的例子

<van-dropdown-menu>
 <van-dropdown-item
 title="請選擇"
 v-model="value"
 :disabled="disabled"
 :options="developList"
 />
</van-dropdown-menu>
 
data () {
 return {
 value: ''
 developList: [
  {
  value: '1',]
 }
}

你會發現請選擇的自然從來沒變過,無論你選擇了第一個還是第二個,那麼你就會想title是不是繫結,接下來就有以下操作

<van-dropdown-menu>
 <van-dropdown-item
 :title="title"
 v-model="value"
 :disabled="disabled"
 :options="developList"
 />
</van-dropdown-menu>
 
data () {
 return {
 value: ''
 title:''請選擇,developList: [
  {
  value: '1',]
 }
}

加下來發現還是沒有改動啊,那是不是繫結的值沒有發生改變了,好像是的,因為你值定義了這個title,這個title就是下拉框選擇的顯示,只是你沒有title的時候vant把你選擇的text文字對映到title上去了,

一旦你自己使用title進行繫結,那麼每次修改時就要修改title,檢視vant api可以發現有change事件,接下來就可以操作了

<van-dropdown-menu>
 <van-dropdown-item
 :title="title"
 v-model="value"
 :options="developList"
 @change="changeDevelop"
 />
</van-dropdown-menu>
 
data () {
 return {
 value: ''
 title:''請選擇,]
 }
},methods: {
 changeDevelop (i) {
 this.title = this.developList[i-1].text
 },}

這就沒問題啦!

補充知識:簡單粗暴修改vant元件nav-bar的title(標題的字型顏色)

最近我有人問我關於vant元件的nav-bar的標題顏色需要改但是不會,我去網上找了一下,發現都很複雜

然後我發現通過深度選擇器可以修改nav-bar的標題的字型顏色

程式碼:

<template>
 <view>
 <demo-block title="基礎用法" class="reset">
 <van-nav-bar title="標題" left-text="返回" right-text="按鈕" left-arrow @clickLeft="onClickLeft" @clickRight="onClickRight" id="reset"/>
 </demo-block>

 <demo-block title="高階用法">
 <van-nav-bar title="標題" left-text="返回" left-arrow>
 <van-icon name="search" slot="right" custom-class="icon" />
 </van-nav-bar>
 </demo-block>

 </view>
</template>

<script>
 import Page from '../../common/page';

 export default {
 data() {
 return {

 }
 },onLoad() {},methods: {
 onClickLeft() {
 console.log("11");//TODO 進不來
 uni.showToast({
  title: '點選返回',icon: 'none'
 });
 },onClickRight() {
 uni.showToast({
  title: '點選按鈕',icon: 'none'
 });
 }
 }
 }
</script>

<style>
 .icon {
 color: #1989fa;
 } 
 #reset /deep/ .van-ellipsis{
 color: red !important;
 }
</style>

效果:

解決vant title-active-color與title-inactive-color不生效問題

解釋: 給元件定義個id,再通過這個深度選擇器獲取title的標籤的類名,修改它的顏色即可.

以上這篇解決vant title-active-color與title-inactive-color不生效問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。