总结一下最近遇到的一些奇异的bug 只要我遇到的奇异bug够多,我就不会被bug难住

1.写进localstorage的false

(1)localstorage的值类型为string
因为需要前端持续化存储界面状态,所以使用localstorage存储true/false,再通过localstorage.getItem获取到的值均为string类型。于是保存的false,变成了‘false’,再进行关系运算时,Boolean(‘false’)为true
(2)控制台特殊类型的颜色
巨坑!控制台输出调试时一定要注意特殊类型的数据(调试时因为没有注意到颜色区别一度让我怀疑人生)

  • ‘false’是黑色,false是蓝色image.png
  • 同理,string黑色,boolean蓝色,number蓝色,undefined灰色,null灰色

image.png

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即可。可用绝对路径,也可用相对路径,且是个当前工作路径相对。

  1. {
  2. "eslint.workingDirectories": ["/home/jianqiaohu/cybertron/modules/xflow/webserver/client"],
  3. "eslint.workingDirectories": ["./client"]
  4. }