当前位置 博文首页 > 解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题

    解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题

    作者:scarecrowll 时间:2021-08-22 17:44

    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',
       text: '我是第一个'
       },
      {
       value: '2',
       text: '我是第二个'
       },
      ]
     }
    }

    你会发现请选择的自然从来没变过,无论你选择了第一个还是第二个,那么你就会想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',
       text: '我是第一个'
       },
      {
       value: '2',
       text: '我是第二个'
       },
      ]
     }
    }

    加下来发现还是没有改动啊,那是不是绑定的值没有发生改变了,好像是的,因为你值定义了这个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:''请选择,
      developList: [
       {
       value: '1',
       text: '我是第一个'
       },
      {
       value: '2',
       text: '我是第二个'
       },
      ]
     }
    },
     
    methods: {
     changeDevelop (i) {
      this.title = this.developList[i-1].text
     },
    }

    这就没问题啦!

    以上这篇解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持站长博客。

    jsjbwy
    上一篇:详解vue路由
    下一篇:没有了