Files
----/前端源码/uni-app/FIXES.md

2.1 KiB
Raw Blame History

问题修复总结

已解决的问题

1. API JSON 解析错误

问题:所有 API 返回 "Unexpected non-whitespace character after JSON at position 1" 原因:请求拦截器中对 token 使用 JSON.parse() 导致解析失败 修复:添加 try-catch 处理,兼容 JSON 和普通字符串格式的 token

2. 路由警告

问题Vue Router 警告 "No match found for location with path '/home'" 修复

  • 添加 /home 路由重定向到 /
  • 添加通配符路由捕获所有未匹配的路由
  • 添加路由守卫和错误处理

3. 轮播图和 TabBar 不显示

问题:使用 rpx 单位但浏览器不识别 修复:将关键组件的 rpx 单位改为标准 CSS 单位px

修改的文件

  1. utils/request.ts - 修复 token 解析和响应处理
  2. router/index.js - 添加路由重定向和守卫
  3. postcss-rpx-to-vw.js - 修复 PostCSS 插件导出
  4. components/CustomTabBar.vue - 将 rpx 改为 px
  5. components/screens/Home.vue - 轮播图样式改为 px
  6. pages/index/index.vue - 内容区域间距改为 px

关键修改

CustomTabBar.vue

  • TabBar 高度80rpx → 60px
  • 图标大小48rpx → 32px
  • 字体大小24rpx → 12px

Home.vue 轮播图

  • 轮播高度40rpx → 24px
  • 内边距20rpx 24rpx → 12px 16px
  • 圆点大小16rpx → 8px

pages/index/index.vue

  • 内容内边距32rpx → 20px
  • TabBar 底部间距120rpx → 80px

测试步骤

  1. 确保开发服务器已重启
  2. 刷新浏览器页面
  3. 检查:
    • ✓ 底部 TabBar 是否显示
    • ✓ 轮播消息是否显示并滚动
    • ✓ API 数据是否正常加载
    • ✓ 页面布局是否正常

注意事项

  • 所有修改都使用标准 CSS 单位px而不是 rpx
  • TabBar 固定在底部z-index: 999
  • 轮播图高度固定为 24px确保可见
  • 内容区域有足够的底部间距,不会被 TabBar 遮挡

如果问题仍然存在

  1. 清除浏览器缓存Ctrl+Shift+Delete
  2. 硬刷新页面Ctrl+Shift+R
  3. 检查浏览器控制台是否有错误
  4. 使用开发者工具检查元素的计算样式