修复金币用完后重置为10的问题
问题原因: - coinUtils.js中使用 if (!coins) 判断金币是否存在 - 当金币为0时,0被当作falsy值,导致重新设置为10 - 用户金币用完后会自动重置,无法真正耗尽 解决方案: - 修改判断条件为 if (coins === null || coins === undefined || coins === '') - 只有当金币未初始化时才设置为初始值10 - 0金币不会被误判为未初始化状态 - 首次初始化时保存到storage 优化内容: - 金币不足时提示更友好,引导用户获取金币 - 修复代码缩进格式 - 确保金币消耗逻辑正确
This commit is contained in:
1 parent
a0dc5d4602
commit
1d76df3ead
1 file changed
+14
-7
@@ -7,8 +7,12 @@ const checkCoinsAndConsume = () => {
|
||||
}
|
||||
|
||||
let coins = uni.getStorageSync('userCoins')
|
||||
if (!coins) coins = 10
|
||||
else coins = parseInt(coins)
|
||||
if (coins === null || coins === undefined || coins === '') {
|
||||
coins = 10
|
||||
uni.setStorageSync('userCoins', coins)
|
||||
} else {
|
||||
coins = parseInt(coins)
|
||||
}
|
||||
|
||||
if (coins < 1) {
|
||||
uni.showModal({
|
||||
@@ -18,10 +22,10 @@ const checkCoinsAndConsume = () => {
|
||||
cancelText: '取消',
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
uni.navigateTo({ url: '/pages/mine/coins' })
|
||||
uni.navigateTo({ url: '/pages/mine/coins' })
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
return { canUse: false, needCoins: true }
|
||||
}
|
||||
|
||||
@@ -35,8 +39,11 @@ const consumeCoin = async () => {
|
||||
}
|
||||
|
||||
let coins = uni.getStorageSync('userCoins')
|
||||
if (!coins) coins = 10
|
||||
else coins = parseInt(coins)
|
||||
if (coins === null || coins === undefined || coins === '') {
|
||||
coins = 10
|
||||
} else {
|
||||
coins = parseInt(coins)
|
||||
}
|
||||
|
||||
coins -= 1
|
||||
uni.setStorageSync('userCoins', coins)
|
||||
|
||||
Reference in new issue
Block a user