使用 Vant-Weapp 的 Radio 單選框,設置默認值時,出了點問題:
<!-- 性別 -->
<van-cell title="性別">
<van-radio-group
slot="value"
name="gender"
value="{{ gender }}"
bind:change="genderChange"
style="display:flex;flex-flow:row nowarp;justify-content:flex-end;"
>
<van-radio name="0" checked-color="#25B077" style="margin-right:40rpx;">女</van-radio>
<van-radio name="1" checked-color="#25B077">男</van-radio>
</van-radio-group>
</van-cell>
data: {
gender: 0,
}
而數據庫中的的 gender,也是以 tinyInteger 類型存儲:
0-女 | 1-男
從後端取回來的數據:
this.gender = user.gender
上面的代碼,看着沒有任何問題。
而且在支付頁面中,在選擇支付方式時,同樣的 Radio 代碼,只是 name 用值是:offline 和 online,設置默認值是沒有任何問題的!
所以,這次怎麼調試,都不正確,很是奇怪,懷疑是 '數據類型' 的問題,所以,嘗試了將 gender 設置爲 '0'
data: {
gender: '0',
}
從後端取回來的數據,連接一個空字符串,轉換爲 string 類型:
this.gender = (user.gender + '')
成功!!!
查看了下源碼,發現是判斷使用了 '===' 恆等,也進行了類型判斷,所以導致的這個問題。記錄下!