总结一下最近遇到的一些奇异的bug 只要我遇到的奇异bug够多,我就不会被bug难住
1.写进localstorage的false
(1)localstorage的值类型为string
因为需要前端持续化存储界面状态,所以使用localstorage存储true/false,再通过localstorage.getItem获取到的值均为string类型。于是保存的false,变成了‘false’,再进行关系运算时,Boolean(‘false’)为true
(2)控制台特殊类型的颜色
巨坑!控制台输出调试时一定要注意特殊类型的数据(调试时因为没有注意到颜色区别一度让我怀疑人生)
- ‘false’是黑色,false是蓝色
- 同理,string黑色,boolean蓝色,number蓝色,undefined灰色,null灰色
2.正确的引用路径,却一直eslint报错
import路径正确却会报错 Unable to resolve path to module ‘./somepath‘
,都是eslint的cache存在导致的,删除node_modules/.cache/eslint-loader
或eslint-webpack-plugin的cache即可
3.页面空白
组件render,但页面是空白。原来是控制台把error信息隐藏了。页面空白应该第一时间想到是页面有报错。
4.Eslint报错
Failed to load plugin 'react' declared in 'client/.eslintrc.js': Cannot find module 'eslint-plugin-react'
报错说没有安装xxx包,即当前node_modules里没有这个包。其实是eslint路径不对,前端项目在root/client里,故在setting.json里配置eslint的工作路径尾client即可。可用绝对路径,也可用相对路径,且是个当前工作路径相对。
{
"eslint.workingDirectories": ["/home/jianqiaohu/cybertron/modules/xflow/webserver/client"],
"eslint.workingDirectories": ["./client"]
}