项目常见问题
整理一些工作中遇到的问题及解决方法。
序号 | 问题描述 | 发生原因 | 解决方法 | 分类 |
---|---|---|---|---|
1 | 倒计时显示异常,出现NAN文字 | IE浏览器 new Date() 不支持‘2020-08-09’时间格式 | 转为‘2020/08/09’ | IE兼容 |
2 | 登录页面报语法错误 | html页面,代码中使用‘a?.b’, IE不支持新语法导致。正常js页面会使用babel进行打包,编译为ES5语法 | 转为 a && a.b 进行判断 | IE兼容 |
3 | 扫码枪扫码时,获取的对象、数组、字符串值均为空 | react使用hooks语法,useState声明的变量,无论当前值是多少,在扫码的时候获取均为初始值 | 先使用 const [list, setList] = useState([]),然后const preListRef = useRef(list),在useEffecth函数中赋值preListRef.current = list。这样获取的preListRef.current即为实时参数 | Hooks语法 |
4 | 项目jenkins构建失败 | 多入口文件打包时,svn拉取代码后,templates文件中除了.ejs文件还有.ejs.svn文件。错误的读取了.ejs.svn导致 | 本地处理读取文件时,使用正则/.ejs$/验证,保证文件读取正确 | jenkins打包 |
5 | 请求接口返回500(含以上)时,页面无法正常执行其他事件(报错) | umi框架中自带dva,dva在服务器500错误会报异常 | 1. 服务端接口返回去除500错误 2. 在项目app.js主文件中添加dva.config对onError进行处理 |
umi框架 |
6 | js字符串比较 | 后端返回的大多是字符串格式,js中字符串比较会把字符串转换为ASCII码逐个字符比较 | 用Number()进行转换后比较 | JavaScript |
7 | less别名绝对路径引入 | less引入需要使用绝对路径,无法识别根路径别名 | 在umi配置根路径别名 alias: { ’@’: require(‘path’).resolve(__dirname, ‘src’) } 在引入是在别名前加~ @import ‘~@/components/zlui/style/theme.less’; |
less文件引入 |
8 | 使用正则断言语法,导致打包后IOS首页显示一直加载 | IOS不支持正则断言语法 | 使用其他正则校验 | uni-app打包 |
9 | 本地正常打包,在服务器中安装依赖后打包,提示缺少xxx文件 | 依赖包版本冲突,中断安装过程 | 使用npm install --legacy-peer-deps 安装 | npm打包 |
10 | vue/react常规打包后,部署到服务器后可正常访问,刷新页面404 | 单页面路由项目打包后只输出一个html文件,其他访问都是基于该页面的跳转,如服务器没有相应重定向配置时,会导致访问404 | 拦截根目录请求,重定向到index.html。例如nginx, 在location中填写 try_files $uri $uri/ /index.html; | 服务器配置 |
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!