vant-weapp 的 radio 單選框,設置默認值問題

使用 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 + '')

    成功!!!


查看了下源碼,發現是判斷使用了 '===' 恆等,也進行了類型判斷,所以導致的這個問題。記錄下!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章