舟山闪爸电子技术有限公司

微信小程序復(fù)選框的組件基本架構(gòu),微信小程序復(fù)選框開發(fā)實例

  2017年12月4日,小編了解到,寫出來,也把源碼上傳了,在這里給大家講解下思路。以便大家在以后的工作中能夠拿上就用。

  先看下功能要點:

  1.多層級的分類選擇

  2.實現(xiàn)下拉功能

  3.選擇完后回到上一頁展示選擇的信息

  4.點擊回到選擇區(qū)在復(fù)選框中顯示之前被選中的列項

  這些看似很簡單,其實是也是很簡單,當(dāng)然了,當(dāng)你會了,操作了一次,自然就簡單了。今天就給大家把清晰的流程跟代碼貼上來。接下來文章可能有點長,不過建議大家一定要看完。因為看完了才會有整體的思路。

  首先看下微信小程序開發(fā)中的復(fù)選框的組件基本架構(gòu),由一個checkbox-group包含著checkbox組件。然后有些屬性:

  bindchange事件處理

  value 默認(rèn)值

  checked 默認(rèn)選中

微信小程序復(fù)選框的組件基本架構(gòu),微信小程序復(fù)選框開發(fā)實例

  那么要實現(xiàn)一個層級的列表多選框,我們先看下基本的數(shù)據(jù)結(jié)構(gòu):

  假設(shè)我們要有兩列選擇,第一列是商品選擇,第二列是食品選擇。首先我們要先寫好一個入口

  我們要去到這個復(fù)選框的頁面,就是下面這種。點擊可以展開跟收起的。

  這個是展開之后的樣子。那么現(xiàn)在我們要做的就是,選中多個的時候,返回到之前進(jìn)入的頁面,然后把相應(yīng)的數(shù)據(jù)帶回去顯示,并且回到這個頁面的時候上次選中的商品要被默認(rèn)選中在這里,供客戶重新增加選擇。

  思路:

  在點擊選擇框的時候,觸發(fā)就一個事件,將分類的下標(biāo),跟當(dāng)前選中的下標(biāo)傳到方法當(dāng)中去,見下圖:

  前面的是分類的下標(biāo),后面的是當(dāng)前選中分類下面的下標(biāo)。然后我們通過checkboxChange方法來獲取到這兩個下標(biāo)。

  接著,我們把每一次選中的值,放到事先準(zhǔn)備好的一個數(shù)組當(dāng)中去,這樣方便我們確定提交的時候統(tǒng)一返回到上一個頁面當(dāng)中去。

  然后我們來寫獲取選中的box的title。

  上面的就已經(jīng)寫好了選中的值會自動增加到this.shops數(shù)組當(dāng)中去,方便提交。我們來選擇幾個打印出來看下。

  這時候,如果選擇好了之后,從上頁面回來的話,就不知道哪個項是哪個分類里的了,所以我們在增加到this.shops數(shù)組當(dāng)中的時候增加一個分類標(biāo)識字段,用來區(qū)分分類。

  我們將分類每一項的下標(biāo)做為區(qū)分字段的值,字段為section。并且加上選中的字段。

  到這里,我們開始提交這個值到上一個頁面去顯示出來。先給確定按鈕加個事件。

  這里教大家一個可以在當(dāng)前頁面控制上一個頁面的data屬性的值方法:

  上圖中這個方法,在navigateBack()執(zhí)行后,會改變上一實例當(dāng)中的message的值,也就是我們選中的復(fù)選框的值會加到上一頁面當(dāng)中去。這里就要注意一點,為了呆會回到頁面能夠把之前選中的值重新展開顯示出來,我們要把this.shops值緩存起來。完整代碼如下圖。

  這時候,我們回到了上一個選擇入口的頁面,我們就可以獲取到這個message的值,并且遍歷出來。也就是我們選擇好的復(fù)選框的值。

  那么這時候,我們在進(jìn)入到選擇頁面,要給衣服跟褲子這兩個復(fù)選框加上默認(rèn)選中的狀態(tài),這時候就有幾個步驟,

  加載之前的緩存,

  操作商品數(shù)組,加上默認(rèn)選中的屬性

  上圖加載完緩存,用section字段來判斷數(shù)據(jù)是哪個分類的,然后給一個selecteds字段來設(shè)置默認(rèn)選中,這時候checkbox屬性的checked就要設(shè)置成item.selecteds。

  之后,我們把items重新賦值,就是我們操作完緩存之后的選中狀態(tài)完成,重新給賦值,然后遍歷出來就會出默認(rèn)選中的狀態(tài)。

  這樣我們重新進(jìn)來的時候就是選中的狀態(tài)了,客戶可以在此基礎(chǔ)上增加跟多選。那么問題來了,我們增加的時候,會自動增加到this.shops數(shù)組當(dāng)中去,當(dāng)我們點擊同樣一個復(fù)選框的時候,我們發(fā)現(xiàn),多增加了一個,這時候應(yīng)該是要刪除掉。見如下操作

  我們只要判斷選中的時候這個selecteds字段值是不是true,如果是的話就為false,不是則為true,這樣增加到this.shops數(shù)組中的數(shù)據(jù)就可以了。那么為false的時候,我們就要從this.shops當(dāng)中刪除這一項。我們只要在增加數(shù)據(jù)后,加上這段代碼就好了,意思是selecteds如果是false的,就刪除,說明不選中了。

  這樣一來,我們的this.shops里的數(shù)據(jù)就是完整的選擇與否的數(shù)據(jù)了。

  這里還有個小細(xì)節(jié)問題,在上一頁面如果沒有進(jìn)行重新選擇,而是跳到另外一個頁面的時候,我們要清除到這個key為shops的緩存,以避免下次進(jìn)來的時候還會加載之前重復(fù)的數(shù)據(jù),會給客戶帶來不好的體驗。所以這里要留意一下。

  在上一個頁面銷毀的時候清緩存:(注意,最好不要用clearStorage,因為防止其它頁面也有緩存被一下清空)


【本站聲明】
  1、本站文章中所選用的圖片及文字來源于網(wǎng)絡(luò)以及用戶投稿,由于未聯(lián)系到知識產(chǎn)權(quán)人或未發(fā)現(xiàn)有關(guān)知識產(chǎn)權(quán)的登記,如有知識產(chǎn)權(quán)人并不愿意我們使用,如果有侵權(quán)請立即聯(lián)系。
  2、本網(wǎng)站不對文章中所涉及的內(nèi)容真實性、準(zhǔn)確性、可靠性負(fù)責(zé),僅系客觀性描述,如您需要了解該類商品/服務(wù)詳細(xì)的資訊,請您直接與該類商品/服務(wù)的提供者聯(lián)系。


KESION 科汛軟件

KESION 科汛軟件是國內(nèi)領(lǐng)先的在線教育軟件及私域社交電商軟件服務(wù)提供商,長期專注于為企業(yè)提供在線教育軟件及社交電商SaaS平臺解決方案。
公司核心產(chǎn)品云開店SaaS社交電商服務(wù)平臺、在線教育SaaS服務(wù)平臺、教育企業(yè)數(shù)字化SaaS云平臺、企微營銷助手、私有化獨立部署品牌網(wǎng)校和在線教育咨詢等。

KESION 不斷通過技術(shù)創(chuàng)新,提供產(chǎn)品和服務(wù),助力企業(yè)向數(shù)字化轉(zhuǎn)型,通過科技驅(qū)動商業(yè)革新,讓商業(yè)變得更智慧!



▼點擊進(jìn)入科汛官網(wǎng)了解更多



上/下篇
換一換相關(guān)推薦
精選內(nèi)容
熱點精選