WeiUI:Page糙俗,Picker的使用

最近公眾號開發(fā)使用了WeiUI勒奇,發(fā)現(xiàn)WeiUI的文檔真的是!一言難盡巧骚。這里我看WeiUI的組件源碼赊颠,對幾個我常用組件的文檔進行一些補充。

  • 1.<page>
    WeiUI的page組件劈彪!對于手機頁面需要上拉加載下拉刷新來說竣蹦,page是很有用處的!這里說上拉加載沧奴,用到onLoadMore痘括,infiniteLoader,當(dāng)infiniteLoader為true時上拉才會出發(fā)onLoadMore滔吠。
    onLoadMore會返回兩個函數(shù)纲菌,第二個函數(shù)是我們需要用到的,結(jié)束loading動畫的函數(shù)屠凶。
    例子:
class Detaile extends Component {
    constructor(props) {
      super(props)
      this.state = {
        logs: [],
      }
      this.params = {
        page_no: 1,
        page_size: 10,
      }
      this.has_next = false
    }

    componentDidMount() {
      this.load()
    }

    componentWillReceiveProps(nextProps) {
      if (nextProps !== this.props) {
        if (this.props.userAccountLogs && nextProps.userAccountLogs) {
          this.has_next = nextProps.userAccountLogs.has_next
          this.setState({
            logs: nextProps.userAccountLogs.items,
          })
        }
      }
    }

    load(finish) {
      //獲取數(shù)據(jù)
      this.props.actions.getUserAccountLogs({
        params: this.params,
        success: () => {
          finish && finish()
        }
      })
    }

    handlerMore(resolve, finish) {
      //上拉加載驰后,當(dāng)還有下一頁的時候才會執(zhí)行,否則infiniteLoader為false不出現(xiàn)loading動畫
      if(this.has_next) {
        this.params = {
          page_no: this.params.page_no + 1,
          page_size: this.params.page_size,
        }
        //請求第下一頁的數(shù)據(jù)
        this.load(finish)
      }
    }

    render() {
        return (
          <Page
            infiniteLoader={this.has_next}
            onLoadMore={(resolve, finish) => this.handlerMore(resolve, finish)}
            transition={false}
            ptr={false}
          >
            <div className="walletDetaile">
            {
              this.state.logs && this.state.logs.map(item => (
                <div className="walletMessage" key={item.id}>
                  <div className="left">
                    <span>{item.source}</span>
                    <span className="date">{item.create_time}</span>
                  </div>
                  <span>{item.amount}元</span>
                </div>
              ))
            }
            </div>
          </Page>
        )
    }
}

function mapStateToProps(state) {
  return {
    userAccountLogs: state.userAccountLogs,
  }
}

function mapDispatchToProps(dispatch) {
  return {
    actions: bindActionCreators({
      getUserAccountLogs,
    }, dispatch),
  }
}

export default connect(mapStateToProps, mapDispatchToProps)(Detaile)

  • 2.Picker
    選擇組件矗愧!提供了滾動選擇的視圖界面灶芝,在手機端十分常見好用的界面郑原。Picker的默認(rèn)頭部的按鈕是英文的,按ok的時候會出發(fā)onChange時間夜涕,可以通過actions來改變頭部的按鈕名稱以及作用犯犁。但是點擊右邊按鈕的時候就不會再觸發(fā)onChange事件!
    組件源碼:
_this.state = {
            selected: _this.props.defaultSelect ? _this.props.defaultSelect : Array(_this.props.groups.length).fill(-1),
            actions: _this.props.actions.length > 0 ? _this.props.actions : [{
                label: _this.props.lang.leftBtn,
                onClick: function onClick(e) {
                    return _this.handleClose(function () {
                        if (_this.props.onCancel) _this.props.onCancel(e);
                    });
                }
            }, {
                label: _this.props.lang.rightBtn,
                onClick: function onClick(e) {
                    return _this.handleChanges();
                }
            }],
            closing: false
        };

通過這里我們可以看出我們可以不傳actions女器,可以傳lang來改變按鈕顯示的文字酸役,保留點擊右邊按鈕時候的onChange事件。onChange會傳出當(dāng)前選中的label驾胆,這樣就基本滿足了需求涣澡。另外這個在滾動的時候會報告一個無法禁止冒泡事件的輸出。
源碼:

key: 'handleTouchMove',
        value: function handleTouchMove(e) {
            if (!this.state.touching || this.props.items.length <= 1) return;
            if (e.targetTouches[0].identifier !== this.state.touchId) return;

            //prevent move background
            e.preventDefault();

            var pageY = e.targetTouches[0].pageY;
            var diffY = pageY - this.state.ogY;

            this.setState({
                translate: diffY
            });
        }

既然這里阻止不了丧诺,我們又不想讓背景隨著你滾動選擇而滾動入桂。這樣可以做到:
當(dāng)picker展示出來的時候給以外層一個style={{overflow: “hidden”}},隱藏的時候再允許外層滾動驳阎。
例子:

<Picker
  show={this.state.show}
  lang={{leftBtn:'關(guān)閉',rightBtn:'確定'}}
  groups={[{'items': CAR_LNGTH}]}
  onChange={selected => this.langCheck(selected) 
  onCancel={() => this.setState({show: false})}
/>
const overflow = this.state.show ?  'hidden' : 'scroll'
<div style={{overflow: overflow}}>
  內(nèi)容
</div>

補充一下抗愁,如果picker的defaultSelect不設(shè)置,在手機端會報錯呵晚!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蜘腌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子饵隙,更是在濱河造成了極大的恐慌撮珠,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件癞季,死亡現(xiàn)場離奇詭異劫瞳,居然都是意外死亡,警方通過查閱死者的電腦和手機绷柒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門志于,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人废睦,你說我怎么就攤上這事伺绽。” “怎么了嗜湃?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵奈应,是天一觀的道長。 經(jīng)常有香客問我购披,道長杖挣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任刚陡,我火速辦了婚禮惩妇,結(jié)果婚禮上株汉,老公的妹妹穿的比我還像新娘。我一直安慰自己歌殃,他們只是感情好乔妈,可當(dāng)我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著氓皱,像睡著了一般路召。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上波材,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天股淡,我揣著相機與錄音,去河邊找鬼各聘。 笑死揣非,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的躲因。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼忌傻,長吁一口氣:“原來是場噩夢啊……” “哼大脉!你這毒婦竟也來了片效?” 一聲冷哼從身側(cè)響起冬筒,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤嗅定,失蹤者是張志新(化名)和其女友劉穎镣奋,沒想到半個月后随闪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體笼呆,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡揪阶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年缠捌,在試婚紗的時候發(fā)現(xiàn)自己被綠了宙刘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苍姜。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖悬包,靈堂內(nèi)的尸體忽然破棺而出衙猪,到底是詐尸還是另有隱情,我是刑警寧澤布近,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布垫释,位于F島的核電站,受9級特大地震影響撑瞧,放射性物質(zhì)發(fā)生泄漏棵譬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一预伺、第九天 我趴在偏房一處隱蔽的房頂上張望订咸。 院中可真熱鬧琅束,春花似錦、人聲如沸算谈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽然眼。三九已至艾船,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間高每,已是汗流浹背屿岂。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鲸匿,地道東北人爷怀。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像带欢,于是被迫代替她去往敵國和親运授。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,771評論 25 707
  • 原文鏈接:https://github.com/opendigg/awesome-github-android-u...
    IM魂影閱讀 32,912評論 6 472
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫乔煞、插件吁朦、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,064評論 4 62
  • 2017年6月17日 星期六 晴 一如既往的大晴天,一如既往的大旱渡贾!啥時候下幾場大雨逗宜,緩解一下旱情啊空骚! ...
    李墨兒媽媽閱讀 127評論 0 0
  • 堅持原創(chuàng)分享第116天 教師朋友最不想聽的一句話恐怕就是:沒有教不好的學(xué)生纺讲,只有不會教的老師。把差學(xué)生教好不就像讓...
    宛如初夏閱讀 214評論 0 0