最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序選擇器組件picker簡單入門

 更新時間:2023年03月02日 09:37:37   作者:BeautifulWater  
微信小程序picker表單選擇器的使用,根據(jù)官方介紹的有點(diǎn)不清楚,下面這篇文章主要給大家介紹了關(guān)于微信小程序選擇器組件picker的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

picker組件的定義

picker組件是一種從底部向上彈起的滾動選擇器。

picker組件的類型

在官方文檔中,有提供五種類型的picker組件,如普通選擇器,多列選擇器,時間選擇器,日期選擇器和省市區(qū)選擇器。

(猜測是,這些選擇器時不同的且常用的某種類型,于是就產(chǎn)生固定的模版)。

而在寫法上是這么寫滴, <picker mode="multiSelector" 其他屬性>

picker屬性

picker組件需要記錄當(dāng)前選擇,選擇的可允許范圍等等,而這些都是picker的一些相關(guān)的屬性。

共同的屬性

  • picker為用戶提供了多個選擇,但用戶要從中選中其中一個,value就這樣記載了用戶當(dāng)前選到的值。(它會初始化選擇器的值)
  • picker為用戶提供了多個選擇,但有時為了構(gòu)造選擇器內(nèi)容的方便,picker可能會提供超出服務(wù)方所能服務(wù)到的實(shí)際范圍,于是在一些選擇器中,可以用一些屬性來限制用戶的選擇,使其鎖定到實(shí)際范圍內(nèi)。
    • 比如在時間選擇器time中start表示一天內(nèi)有效范圍的開始,而end屬性表示一天內(nèi)有效時間范圍內(nèi)的結(jié)束。舉個例子,拔牙建議是在早上來拔,如果寫一個拔牙的預(yù)約系統(tǒng),則可以用end="12:00"來限定結(jié)束時間。
  • picker為用戶提供了多個選擇,用戶選了其中一種,但仍是需要有東西去告訴后臺用戶選了什么。于是就有了bindchange,代表說當(dāng)用戶選擇了原選擇不同的選擇時,會觸發(fā)的相應(yīng)的函數(shù)。
    • 因?yàn)槲⑿判〕绦蚴褂昧藬?shù)據(jù)綁定的技術(shù),所以一般bindchange會修改在js文件里面對應(yīng)的值。
    • 數(shù)據(jù)綁定技術(shù)可以簡單理解成一種從wxml文件獲取到j(luò)s文件中數(shù)據(jù)域中的某個數(shù)據(jù)的技術(shù),如{{data}}

時間選擇器time

wxml

<view class="section">
    <h2>時間選擇器</h2>
    <picker mode="time" value = "{{Time}}" start="9:00" end="12:00" bindchange="bind_ChangeTime">
         {{Time}}
    </picker>
</view>

js文件

Page({
  data:{
    Time:"9:00"
  },
  bind_ChangeTime:function(e){
      console.log(e.detail.value)
      this.setData({
        Time:e.detail.value
      })
  }
})

wxss

page{
  background-color: navy;
}
.section{
  text-align: center;
}
.section_title{
  display:flexbox;
  font-family:'Times New Roman', Times, serif;
  color: aliceblue;
}
.section_picker{
background-color: white;
}

參考

微信小程序官方文檔

補(bǔ)充:遇到的問題

問題說在前面,同一個頁面使用多個普通選擇器遇到了問題,選擇一個選項(xiàng),其他選項(xiàng)也跟隨著改變了。

代碼如下:

//picker.wxml:   
<view class="column_list" >
        <text class="font15">選項(xiàng)一</text>
        <picker class="inputText" bindchange="bindchange1" value="{{index}}" range="{{option1}}">
            <view class="select_picker">
                {{option1[index]}}
                <image  mode="aspectFit"  class="select_arrow" src="../../images/select_arrow.png"></image>
            </view>
        </picker>
    </view>
    <view class="column_list" >
        <text class="font15">選項(xiàng)二</text>
        <picker class="inputText" bindchange="bindchange1" value="{{index}}" range="{{option2}}">
            <view class="select_picker">
                {{option2[index]}}
                <image  mode="aspectFit"  class="select_arrow" src="../../images/select_arrow.png"></image>
            </view>
        </picker>
    </view>
    <view class="column_list" >
        <text class="font15">選項(xiàng)三</text>
        <picker class="inputText" bindchange="bindchange1" value="{{index}}" range="{{option3}}">
            <view class="select_picker">
                {{option3[index]}}
                <image  mode="aspectFit"  class="select_arrow" src="../../images/select_arrow.png"></image>
            </view>
        </picker>
    </view>
//picker.js
    Page({
    data: {
        index:0,//設(shè)置索引值默認(rèn)為0
        option1: ['1', '2', '3','4','5'],
        option2: ['一', '二', '三','四','五'],
        option3: ['①', '②', '③','④','⑤'],
    },
    bindchange1:function (e) {
       // console.log('picker發(fā)送選擇改變,攜帶值為', e.detail.value)
       // 設(shè)置這個攜帶值賦值給索引值index
       // 所以option1 ,option2 ,option3的索引值都是一樣的
        this.setData({
            index: e.detail.value
        })
    }
})

因?yàn)槟J(rèn)索引值(也叫“下標(biāo)”)都是index,綁定事件也只是改變了index。所以改變一個選項(xiàng),其他選項(xiàng)都跟著改變了。

如何解決

首先想到的解決辦法就是自定義不同的索引值index1、index2,、index3,分別綁定不同的時間bindchange1、bindchange2、bindchange3改變

其對應(yīng)的索引值。

代碼如下:

//picker.wxml: 
 <view class="column_list" >
        <text class="font15">選項(xiàng)一</text>
        <picker class="inputText" bindchange="bindchange1" value="{{index1}}" range="{{option1}}">
            <view class="select_picker">
                {{option1[index1]}}
                <image  mode="aspectFit"  class="select_arrow" src="../../images/select_arrow.png"></image>
            </view>
        </picker>
    </view>
    <view class="column_list" >
        <text class="font15">選項(xiàng)二</text>
        <picker class="inputText" bindchange="bindchange2" value="{{index2}}" range="{{option2}}">
            <view class="select_picker">
                {{option2[index2]}}
                <image  mode="aspectFit"  class="select_arrow" src="../../images/select_arrow.png"></image>
            </view>
        </picker>
    </view>
    <view class="column_list" >
        <text class="font15">選項(xiàng)三</text>
        <picker class="inputText" bindchange="bindchange3" value="{{index3}}" range="{{option3}}">
            <view class="select_picker">
                {{option3[index3]}}
                <image  mode="aspectFit"  class="select_arrow" src="../../images/select_arrow.png"></image>
            </view>
        </picker>
    </view>
    // picker.js
    Page({
    data: {
        index1:0,
        index2:0,
        index3:0,
        option1: ['1', '2', '3','4','5'],
        option2: ['一', '二', '三','四','五'],
        option3: ['①', '②', '③','④','⑤'],
    },
    bindchange1:function (e) {
        this.setData({
            index1: e.detail.value
        })
    },
    bindchange2:function (e) {
        this.setData({
            index2: e.detail.value
        })
    },
    bindchange3:function (e) {
        this.setData({
            index3: e.detail.value
        })
    }
})

這樣一個頁面多個picker的問題就解決了,但是現(xiàn)在又發(fā)現(xiàn)了一個新的問題:

為什么多個picker會出現(xiàn)相互影響的問題?比如在第一個選擇器選擇了3,剩下的選擇器點(diǎn)進(jìn)去默認(rèn)都是從第3個開始?” 小程序開發(fā)工具中的確存在,看了社區(qū)的帖子,才知道這個是官方的bug,目前還沒有修復(fù)。

總結(jié)

到此這篇關(guān)于微信小程序選擇器組件picker的文章就介紹到這了,更多相關(guān)小程序選擇器picker內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 自適應(yīng)方案postcss-pxtorem使用步驟

    自適應(yīng)方案postcss-pxtorem使用步驟

    這篇文章主要介紹了如何使用postcss-pxtorem插件將px單位轉(zhuǎn)換為rem單位,包括安裝插件、創(chuàng)建配置文件和引入腳本的步驟,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-11-11
  • 深入淺析es6-module的語法

    深入淺析es6-module的語法

    ES6引入了模塊化概念,提供命名導(dǎo)出、默認(rèn)導(dǎo)出、導(dǎo)出重命名和導(dǎo)出合并功能,支持動態(tài)導(dǎo)入,模塊默認(rèn)嚴(yán)格模式,避免全局污染,支持循環(huán)依賴,代碼更可維護(hù),本文介紹es6-module的語法知識,感興趣的朋友一起看看吧
    2025-02-02
  • 淺談JavaScript工具鏈不完全指南

    淺談JavaScript工具鏈不完全指南

    經(jīng)過這么多年的發(fā)展,JavaScript 早已經(jīng)不是當(dāng)年那個不太起眼的腳本語言。如今的 JavaScript 可以說是風(fēng)光無限,在 Web 前端、移動端、服務(wù)端甚至物聯(lián)網(wǎng)設(shè)備上都大展身手,到處都有它的身影。
    2021-05-05
  • JavaScript代碼復(fù)用模式實(shí)例分析

    JavaScript代碼復(fù)用模式實(shí)例分析

    任何編程都提出代碼復(fù)用,否則話每次開發(fā)一個新程序或者寫一個新功能都要全新編寫的話,效率太差了,接下來我們將針對代碼復(fù)用來進(jìn)行討論,需要的朋友可以參考下
    2012-12-12
  • JS三級可折疊菜單實(shí)現(xiàn)方法

    JS三級可折疊菜單實(shí)現(xiàn)方法

    這篇文章主要介紹了JS三級可折疊菜單實(shí)現(xiàn)方法,以實(shí)例形式分析了asp.net結(jié)合JavaScript實(shí)現(xiàn)三級折疊菜單的相關(guān)技巧,涉及JavaScript節(jié)點(diǎn)操作實(shí)現(xiàn)方法,需要的朋友可以參考下
    2016-02-02
  • BootStrap 輪播插件(carousel)支持左右手勢滑動的方法(三種)

    BootStrap 輪播插件(carousel)支持左右手勢滑動的方法(三種)

    這篇文章主要介紹了BootStrap 輪播插件(carousel)支持左右手勢滑動的方法(三種)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • javascript學(xué)習(xí)基礎(chǔ)筆記之DOM對象操作

    javascript學(xué)習(xí)基礎(chǔ)筆記之DOM對象操作

    javascript是一種基于對象和世界驅(qū)動,并且安全性較強(qiáng)的腳本語言。一個完整的javascript實(shí)現(xiàn)包括核心(ECMAScript),文檔對象模型(DOM)和瀏覽器對象模型(BOM)
    2011-11-11
  • 移動端手指放大縮小插件與js源碼

    移動端手指放大縮小插件與js源碼

    這篇文章主要介紹了移動端手指放大縮小插件與js源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • JavaScript語言精粹經(jīng)典實(shí)例(整理篇)

    JavaScript語言精粹經(jīng)典實(shí)例(整理篇)

    本文是小編日常讀書筆記整理有關(guān)javascript知識,都是js精粹非常不錯,具有參考借鑒價值,特此分享到腳本之家平臺供大家參考
    2016-06-06
  • 手機(jī)端頁面rem寬度自適應(yīng)腳本

    手機(jī)端頁面rem寬度自適應(yīng)腳本

    網(wǎng)上關(guān)于這方面的文章有很多,重復(fù)的東西本文不再贅述,僅提供思路,并解釋一些其他文章講述模糊的地方。重點(diǎn)給大家介紹下rem.有需要的小伙伴可以參考下。
    2015-05-05

最新評論

平江县| 永新县| 买车| 康马县| 辽阳县| 长岛县| 南阳市| 始兴县| 十堰市| 莱阳市| 诸暨市| 宁蒗| 湘西| 古浪县| 昭苏县| 德格县| 江陵县| 桦川县| 利津县| 新巴尔虎右旗| 万全县| 大港区| 汉沽区| 礼泉县| 濮阳市| 陇川县| 安庆市| 内丘县| 吴川市| 和林格尔县| 杭锦后旗| 台东市| 河南省| 镇江市| 炉霍县| 开化县| 荔波县| 敦化市| 庆阳市| 讷河市| 成武县|