fix(商品详情页): 修复缺少ID参数时的异常处理并优化错误捕获
添加对缺少ID参数的检查,避免支付成功后异常返回时发起无效请求 增加try-catch块捕获获取商品详情时的潜在错误
Showing
1 changed file
with
20 additions
and
7 deletions
| ... | @@ -245,7 +245,7 @@ | ... | @@ -245,7 +245,7 @@ |
| 245 | </template> | 245 | </template> |
| 246 | 246 | ||
| 247 | <script setup> | 247 | <script setup> |
| 248 | -import { ref, onMounted, computed } from 'vue' | 248 | +import { ref, computed } from 'vue' |
| 249 | import Taro, { useShareAppMessage, useDidShow } from '@tarojs/taro' | 249 | import Taro, { useShareAppMessage, useDidShow } from '@tarojs/taro' |
| 250 | import { Share, Heart1, HeartFill, Message } from '@nutui/icons-vue-taro' | 250 | import { Share, Heart1, HeartFill, Message } from '@nutui/icons-vue-taro' |
| 251 | import payCard from '@/components/payCard.vue' | 251 | import payCard from '@/components/payCard.vue' |
| ... | @@ -509,13 +509,26 @@ useDidShow(async () => { | ... | @@ -509,13 +509,26 @@ useDidShow(async () => { |
| 509 | // 获取用户信息 | 509 | // 获取用户信息 |
| 510 | await userStore.fetchUserInfo() | 510 | await userStore.fetchUserInfo() |
| 511 | 511 | ||
| 512 | - // 获取商品详情 | 512 | + // 获取页面参数 |
| 513 | let params = getCurrentPageParam(); | 513 | let params = getCurrentPageParam(); |
| 514 | - const { code, data } = await getVehicleDetailAPI({ id: params.id }) | 514 | + |
| 515 | - if (code) { | 515 | + // 检查是否有商品ID参数,如果没有则不请求详情 |
| 516 | - product.value = data | 516 | + // 这种情况通常发生在支付成功后返回详情页,但实际上应该跳转到订单页面 |
| 517 | - product.value.cover_image = [data.front_photo || DEFAULT_COVER_IMG] | 517 | + if (!params.id) { |
| 518 | - product.value.images = filterEmptyValues([data.front_photo, data.other_photo, data.left_photo, data.right_photo]) | 518 | + console.warn('商品详情页缺少ID参数,可能是支付成功后的异常返回') |
| 519 | + return | ||
| 520 | + } | ||
| 521 | + | ||
| 522 | + // 获取商品详情 | ||
| 523 | + try { | ||
| 524 | + const { code, data } = await getVehicleDetailAPI({ id: params.id }) | ||
| 525 | + if (code) { | ||
| 526 | + product.value = data | ||
| 527 | + product.value.cover_image = [data.front_photo || DEFAULT_COVER_IMG] | ||
| 528 | + product.value.images = filterEmptyValues([data.front_photo, data.other_photo, data.left_photo, data.right_photo]) | ||
| 529 | + } | ||
| 530 | + } catch (error) { | ||
| 531 | + console.error('获取商品详情失败:', error) | ||
| 519 | } | 532 | } |
| 520 | }) | 533 | }) |
| 521 | </script> | 534 | </script> | ... | ... |
-
Please register or login to post a comment