使用微信小程序設(shè)計下拉菜單,發(fā)現(xiàn)官方文檔中關(guān)于picker-view的示例代碼有錯誤,
頂部天數(shù)不隨著滑動而變化,并且默認出現(xiàn)的月份和天數(shù)是寫死的,不是根據(jù)當天日期顯示。
修改后的js文件為
const date = new Date()
const years = []
const months = []
const days = []
for (let i = 1990; i <= date.getFullYear(); i++) {
years.push(i)
}
for (let i = 1; i <= 12; i++) {
months.push(i)
}
for (let i = 1; i <= 31; i++) {
days.push(i)
}
|
Page({
data: {
//數(shù)組中保存的可選日期
years: years,
months: months,
days: days,
//默認的頂部日期
year: date.getFullYear(),
month: date.getMonth()+1,
day: date.getDate(),
//滑動框中放入的是第幾個值
value: [date.getFullYear(), date.getMonth(), date.getDate()-1],
},
bindChange: function (e) {
const val = e.detail.value
this.setData({
year: this.data.years[val[0]],
month: this.data.months[val[1]],
day: this.data.days[val[2]]
})
}
})
|
date.getMonth()取得的月份比真實月份小1,即從0到11月份,并且需要注意的是getMonth()方法必須帶括號,微信開發(fā)工具自動提示的不帶括號,需要自己手動補上括號。
并且data中的value值,目測天數(shù)項要減1才能符合,沒弄懂這個地方是為什么,
wxml文件
<view>
<view>{{year}}年{{month}}月{{day}}日</view>
<picker-view indicator-style="height: 50px;" style="width: 100%; height: 300px;" value="{{value}}" bindchange="bindChange">
<picker-view-column>
<view wx:for="{{years}}" style="line-height: 50px">{{item}}年</view>
</picker-view-column>
<picker-view-column>
<view wx:for="{{months}}" style="line-height: 50px">{{item}}月</view>
</picker-view-column>
<picker-view-column>
<view wx:for="{{days}}" style="line-height: 50px">{{item}}日</view>
</picker-view-column>
</picker-view>
</view>
|
二:獲取用戶openId
這個算不上技巧,而是一個基礎(chǔ)
wx.login({
success: function (res) {
res.code
})
|
獲取到code后,傳到后臺,
然后請求微信接口
https://api.weixin.微軟雅黑/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
把參數(shù)替換為自己的參數(shù),這個接口就直接返回openId了
更多請在本站搜索openid或登錄查看更多文章和帖子