问题,关于老师说的使用switch

问题,关于老师说的使用switch

问题描述:

请老师帮我检查一下,为什么我改用 switch 显示不出数据,传的值也都能打印出来,可是最后的结果还是空的

相关截图:

http://img1.sycdn.imooc.com//climg/60cb00ba09db100225601554.jpg

相关代码:

​// pages/hot/hot.js
Page({
data: {
rankType: undefined,
rankTitle: [{
name: '实战排行',
type: 'project'
},
{
name: '路径排行',
type: 'path'
}
],
timeType: undefined,
timeTitle: [{
date: '周',
type: 'week'
},
{
date: '月',
type: 'month'
}
],
rankListData: []
},
rankList: {},
onLoad() {
wx.request({
url: 'https://www.fastmock.site/mock/55f026f87038d1b3db021a9276d04bb7/longzilei/api/rank',
success: (res) => {
// console.log(res)
const {
data: {
data
}
} = res
this.rankList = data
const rankType = wx.getStorageSync('rankType') || 'project'
const timeType = wx.getStorageSync('timeType') || 'week'
this.setData({
rankType,
timeType
})
this.rankDataChange(rankType, timeType)
}
})
},
rankDataChange(rankType, timeType) {
let list = []
console.log(rankType, timeType)
switch (rankType, timeType) {
case (rankType === 'project' && timeType === 'week'):
list = this.rankList.projectWeek
console.log(list)
break;
case (rankType === 'project' && timeType === 'month'):
list = this.rankList.projectMonth
break
case (rankType === 'path' && timeType === 'week'):
list = this.rankList.pathWeek
break
case (rankType === 'path' && timeType === 'month'):
list = this.rankList.pathMonth
break
}

// if (rankType === 'project' && timeType === 'week') {
// list = this.rankList.projectWeek
// } else if (rankType === 'project' && timeType === 'month') {
// list = this.rankList.projectMonth
// } else if (rankType === 'path' && timeType === 'week') {
// list = this.rankList.pathWeek
// } else {
// list = this.rankList.pathMonth
// }

console.log(list)
this.setData({
rankListData: list
})
},
rankChange(e) {
// console.log(e)
const rankType = e.currentTarget.dataset.rank
const {
timeType
} = this.data
// console.log(rankType)
this.setData({
rankType
})
wx.setStorage({
data: rankType,
key: 'rankType'
})
this.rankDataChange(rankType, timeType)
},
timeChange(e) {
const {
rankType
} = this.data
const timeType = e.currentTarget.dataset.time
this.setData({
timeType
})
wx.setStorage({
data: timeType,
key: 'timeType'
})
this.rankDataChange(rankType, timeType)
}
})


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕慕子 2021-06-17 17:56:20

同学你好,可以参考如下方式,使用witch结合三目运算符实现效果,如下:

http://img1.sycdn.imooc.com//climg/60cb1c3b0906d11d09070609.jpg

祝学习愉快~

好帮手慕慕子 2021-06-17 16:10:45

同学你好,因为js语法中规定,switch后面只能有一个表达式,但是代码中传递了两个参数,如下:

http://img1.sycdn.imooc.com//climg/60cb030c0942a1d408330411.jpg

所以这种写法无法实现效果,推荐同学参考视频讲解,使用if来实现效果。

祝学习愉快~


  • 提问者 龙同學 #1

    视频里老师说用switch会简单点,这里用switch该怎么写?

    2021-06-17 16:43:01
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师