项目常见问题

整理一些工作中遇到的问题及解决方法。

序号 问题描述 发生原因 解决方法 分类
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 协议 ,转载请注明出处!