關於better-scroll這個插件前面已經介紹過兩次了 從原生js使用到結合服務端發送數據使用都有過介紹react
今天給你們分享一下這款插件在react中碰見的坑 總之我真是對這款插件又愛又恨 每次各類bug十足後還不去拋棄他git
繼續去研究他 真是恨之切,愛之深,典型的受虐狂啊 哈哈 好了廢話很少說接下來給你們展現在react碰見的小問題github
首先我想實現的是一個下拉刷新的小功能,那麼咱們就得須要數據 在最初始的react中實現我在state中定義了一個空數組ajax
而後在componentDidMount這個生命週期第一次發送ajax請求用來給個人初始值渲染數據,而後請求過來十條數據後發送給了數組
列表組件渲染上了整個頁面,接着我在這個ajax的then方法裏面初始化了一個BScroll的實例化用函數
pullDownRefresh: {
//下拉到一百的位置纔會觸發
threshold: 100,
//而後鬆手後返回50的位置
stop: 30,
}
設置了一波初始化條件
接着我就不知怎麼腦抽的去了componentDidUpdate這個生命週期中去監聽了pullingDown 這個事件 終於形成了一個十分尷尬的問題
就是我第二次下拉刷新的時候ajax請求一股腦的給我觸發了屢次,將全部的數據所有返回了回來,這與我每次下拉觸發一次刷新一遍的
初衷大大不一樣,
通過各類掙扎後終於和實例化和pullingDown這個事件的監聽一塊兒提出來而後放在了componentDidUpdate這個生命週期中就解決了
此時不知道你們有沒有疑問 這個函數是掛載階段的生命週期 按咱們所學的知識來講掛載階段只會執行一次呀 可是爲何這個函數裏面
的事件還會執行呢 ,此時用的知識點就是發佈訂閱了,關於發佈訂閱請看之後分享~~~
不過在這個題中還運到了另外一個問題就是 若是我給元素設置一個自定義屬性而後經過僞類選擇器的attr將這個僞類選擇器展現到頁面
上去沒有成功 不知道哪位大佬能幫忙解決在react中怎麼設置自定義屬性而後經過attr展現到頁面上去,若能解答不勝感激~~~~