Просмотр исходного кода

🐛 fix(order): 修复乘车人相关数据类型判断问题

- 优化订单数据获取逻辑,确保返回值始终为数组
- 为savedPassengers添加数组类型检查,防止非数组值导致的渲染错误
- 修复乘车人选择器显示条件判断,避免潜在的类型错误
- 完善空状态显示逻辑,确保在数据异常时正确展示提示信息
yourname 3 месяцев назад
Родитель
Сommit
97b12f315b
1 измененных файлов с 5 добавлено и 4 удалено
  1. 5 4
      mini/src/pages/order/index.tsx

+ 5 - 4
mini/src/pages/order/index.tsx

@@ -83,7 +83,8 @@ export default function OrderPage() {
       }
 
       const result = await response.json()
-      return result.data || []
+      // 确保返回的是数组,即使API返回错误或空数据
+      return Array.isArray(result.data) ? result.data : []
     },
     initialData: []
   })
@@ -235,7 +236,7 @@ export default function OrderPage() {
       return
     }
 
-    if (savedPassengers && savedPassengers.length > 0) {
+    if (Array.isArray(savedPassengers) && savedPassengers.length > 0) {
       setShowPassengerSelector(true)
     } else {
       navigateTo({
@@ -772,7 +773,7 @@ export default function OrderPage() {
           </DialogHeader>
 
           <ScrollView className="max-h-60vh overflow-y-auto p-1">
-            {!savedPassengers || savedPassengers.length === 0 ? (
+            {!Array.isArray(savedPassengers) || savedPassengers.length === 0 ? (
               <View className="text-center py-20">
                 <View className="text-6xl mb-3 opacity-60">👥</View>
                 <Text className="text-lg text-gray-600 mb-1 font-semibold">暂无已保存的乘车人</Text>
@@ -818,7 +819,7 @@ export default function OrderPage() {
                 添加
               </View>
             </Button>
-            {savedPassengers && savedPassengers.length > 0 && (
+            {Array.isArray(savedPassengers) && savedPassengers.length > 0 && (
               <Button
                 onClick={handleManagePassengers}
                 className="flex-1"