微信小程式跳轉傳參引數丟失?

2022-07-05 17:12:15 字數 1559 閱讀 2412

垂死病中驚坐起,笑問 bug 何處來?!

那個,有一兩個小 bug 很正常的啦。

下班回到家的我立馬開啟開發者工具,一測試發現,果然,我是不可能寫不出 bug 的。

寫 bug 是一把好手,找 bug 我也是不賴的,最後原因定位:引數沒有正確傳遞。

a 頁面

a.js

tob(e) )

console.log(i)

}b 頁面

onload: function

(options) )

}

結果是:

很明顯,openid 獲得了正確引數,說明接收和傳遞過程毛問題,那就是傳遞之前 testid 就出錯了。

控制台列印一下 dataset,發現沒有, testid 變成了 testid。

這說明了什麼?說明他在搞事情,他在搞我!這裡把 testid 改成 testid,就能正確傳遞了。

資料繫結不能用大寫,記住啊,兄die。(或者可以用大寫繫結,小寫獲取,開心就好呀)

改完 bug 想著可以休息會,結果大半夜又有人找:回覆讀者失敗了。

我試了一下,沒發現他說的問題。便回覆道:重新整理一下?多試兩次?換個網路?應該不是我這邊的問題吧...

過了一會,這個老哥說還是不行,然後這個老哥大半夜還和我一起來找 bug 了,感動,找到 bug 我還特地發了個紅包感謝。

最後發現資料在乙個問號那裡斷開了,前面資料正常,後面資料被截斷。仔細看下是因為使用者輸入了乙個英文「?」??????

做個測試:

a 頁面

tob//

a.js

tob(e) )

}b 頁面

onload: function

(options) )

}

果然是英文問號惹的麻煩,腦殼疼,連個「?」都來找麻煩,我好南南南南南南啊。

找到問題了就盤他,但這不能怪使用者,鬼知道什麼時候就輸入了乙個「?」。因為跳轉路徑中加引數也是用的「?」,所以這裡應該是被誤「?」後面帶參。

i. 跳轉頁面的時候把dataset的資料寫入快取,到了新頁面再讀取快取,這裡就不囉嗦了,關鍵是第二種。

ii. 利用replace把 ? 轉化成 ?

但是這裡有個問題,用replace('?', '?')的話,只能轉化一次。

如果輸入了多個英文問號呢?不排除這種可能,所以不建議用replace('?', '?'),推薦加入正規表示式,即replace(/\?/g, "?")去轉化英文問號。

柒塊腹肌的玖柒回來了,有段時間沒更新了,一直在忙著重寫小程式,主要是我還沒有想到更好的藉口。

微信小程式傳參思路

父元件wxml 父元件像子元件傳參的作用是讓子元件顯示父元件的某些資料 例如 自定義組價 ipt 當使用者輸入錯誤或者沒輸入就想提交時,我就必須向他傳送某些資訊如 必填選項 父頁面的wxml 錯誤資訊為 介是個必填選項 bind blur isblur ipt remainded裡面是我想傳送過去的...

微信小程式 bindtap等事件傳參

事件是檢視層到邏輯層的通訊方式。事件可以將使用者的行為反饋到邏輯層進行處理。事件可以繫結在元件上,當達到觸發事件,就會執行邏輯層中對應的事件處理函式。事件物件可以攜帶額外資訊,如 id,dataset,touches。wxml taptest data hi wechat bindtap tapna...

微信小程式 bindtap等事件傳參

什麼是事件 事件是檢視層到邏輯層的通訊方式。事件可以將使用者的行為反饋到邏輯層進行處理。事件可以繫結在元件上,當達到觸發事件,就會執行邏輯層中對應的事件處理函式。事件物件可以攜帶額外資訊,如 id,dataset,touches。看圖,因為需要傳遞的資料比較多,所以我們通過dataset攜帶引數資訊...