错误记录
React 集成 eslint 和 prettier 时报错
我的配置如下:eslintrc.js
配置
page.json
配置如下:
我按照网上配置好 eslint 和 prettier 后,并且下载安装两者结合使用的插件配置后,启动项目就报错:
目前解决方法时网上找的一个,方式如下:
将react-scripts
的版本从4.0.3
降到4.0.1
然后重启项目,错误解决,配置生效。
我在另一个 vue-cli 的项目下也配置了这个,之前是可以的,然后今天2021/10/22
又不行了。所以这应该是eslint
和eslint-plugin-prettier
两者不兼容,所以我们可以选择将 eslint 版本升级到7.32.0
,或者降低eslint-plugin-prettier
的版本为3.4.0
React 运行 eslint 修复时警告
运行命令:
警告如下:
package.json
配置如下:
进入对应网站后将以下代码加入到.eslintrc
顶层同级配置中即可:
await 后面的代码不执行
原因就是内部的resolve
写到一个条件执行语句中,导致没有继续执行,这里记录长个记性。
React 打包后路由跳转后刷新 404
放到服务器中配置 nginx 重定向即可
远程连接数据库失败
买了个新服务器准备远程连接,不出意外直接报错,按照以下原因排除:
- 账号密码是否正确
- 服务器是否开启 3306 端口的安全组
数据库是否允许远程连接,查看用户账号信息
如果结果如下就是没开启外部
ip
的访问权:需要修改权限使用如下的命令:
再次查看用户信息:
%
就是所有ip
都可以访问。
之后就可以远程连接访问了
aduio 计算缓冲进度报错
相关链接如下:链接
我准备展示歌曲的缓冲进度,但是总是报越界的错误,如下:
这里主要是一个代码执行时机的问题,计算缓存可以通过如下代码计算:
ant-design-vues 使用 select 的 placeholder 属性不生效
select
组件上我设置了value和placeholder
,原本的效果我觉得应该是,只要value
为空或者undefined
就展示placeholder
的内容,但是目前 2021/11/6 还是只能将value
的默认值设置为undefined
才能默认展示placeholder
,如果设置为空值或者空字符串就会展示空置或者空字符串,造成一种placeholder
未生效的效果。
vue3解构Reactive响应式数据导致响应式丢失问题
这个问题官方网站上有解决方法自行参考
为一个列表中的每一个item绑定一个ref,导致获取的ref永远为最后一个
这个是我疏忽了,因为每一个item绑定的都是同一个ref变量
上面的案例展示了我为每一个item绑定了一个ref,但实际上我获取的永远都是最后一个元素。
axios请求接口响应4xx时错误不能被catch到
我本来想设置一个请求错误的处理,结果发现错误一直不能被catch到,然后我检查了我的响应错误拦截器发现了,在拦截器处理完错误后我直接将err
返回,这不直接就进入resolve
了吗,
所以这个小坑一定要注意,这是不容易发现的,当然如果你没有使用拦截器去拦截错误,这个响应错误是可以被catch
到的,但如果你使用了错误拦截器,之后还想catch
到这个错误的化就将err
用Promise.reject
包装一下,将错误传递下去即可。
使用计算属性和v-model
我在书写文章编辑的时候需要将存在vuex
中的文章通过计算属性拿出来,保证响应式,但是这个文章内容我是使用了v-model
绑定,计算属性简单的使用形式是只读的,所以这里会报警告,所以需要使用计算属性的本质形式(getter
和setter
形式)。
需要改成如下写法:
项目出现警告
有时我在项目中发现这个警告
这个警告咋出现目前还没搞懂,并不是一直都有,有时有又是没有,目前的解决方法参照百度
在项目入口文件导入(main.js)
React中使用 antd组件报错
我在使用一个antd的表格组件来练习dva的时候报了一个错误:
当时我还以为是我在写dva的modal的报错,但经过我的排查我发现这是react依赖的版本错误。
首先我通过dva-cli的脚手架搭建的项目,安装包只有两个:
我通过运行以下命令查看了我安装的antd和它依赖的react包的版本:
结果如下:
可以看到antd依赖的react是17.x的版本。而我通过dva搭建的项目依赖的react版本是16.x
然后我的解决方案是降低antd的版本,所以我安装了3.x的版本:
查看下版本依赖:
都是16.x的
重启项目后,正常运行,问题解决。
总结,该项目主要报错原因就是不同库对react依赖版本不一致造成的报错。
React-redux使用的一个疏忽
我在使用react-redux的时候需要在一个js文件中获取store,当然不能使用react-redux相关的hooks了,毕竟这不是在函数组件中,所以我需要直接将store导入进来。语法当然没有变,如下:
我当时有个需求就是dispatch action后去获取改变后的state:
这里我本以为dispatch这里执行为同步的嘛,为啥不变呢。但是待我仔细检查发现了我用的state还是最先的state,当我们执行dispath的时候,并不是在原来的基础上去修改,而是生成新的state了。所以这里我们需要重新获取state。即再执行下store.getState()。这样我们就能获得更新后的state了。
使用React-router v6 犯的一个错误
React-router v6 出了一个新的hooks useRouters用来代替之前的react-config-router 当然这很方便,但是我在使用的时候犯了一个错误,我当时并没有想使用路由懒加载,但是在配置路由文件的时候却使用了异步引入,如下代码:
然后我并没有做任何个处理,直接将其导出并通过useRoutes处理返回然后放到jsx中渲染,导致报错。后来发现如果你要使用异步导入的形式,就需要配合react中自带的lazy函数进行包裹 比如 :lazy(() => (xxx));
当然如果你不想使用懒加载就直接导入,按照以下写法即可:
这里是疏忽大意导致的错误,下次不能再犯了。
try catch finally中的return
这三个块中,如果finally有return那try或者catch中的return会被忽略。
mdn
拉取远程仓库是犯的一个错
我将远程的一个仓库拉取到本地,这个远程仓库有很多的分支,我需要切换到一个分支上进行开发,但是我拉取下来后,并没有在本地创建一个分支,相当于我本地就只有一个master分支,剩下的全是远程分支。
然后我干了一个操作就是直接checkout
到远程分支上去进行开发,之后commit后,我发现分支上找不到我提交的信息了,然后我又按照远程的的某个分支创建了同名的本地分支,之后发现我的代码没了,不会一上午白干了吧~~~。
这时候我就去找了师兄,帮我找到我之前提交的commit
,然后cherry-pick
到我现在创建的分支上,之后代码恢复了,嗨虚惊一场,所以操作git
要规范,菜鸟的我要去深入学习git
了。以后要拉取分支开发的时候,一定记得要在本地创建一个对应分支开发[汗]。
使用DataGroup连接mysql报的错
已经确定远程服务器防火墙关闭以及mysql允许所有ip连接,包括服务器的对应端口安全组也已经设置开放
协议不支持? ,csdn上找到的解决方法是在上图中生成的url后添加?createDatabaseIfNotExist=true&useSSL=false
Comment here is closed