一个小坑, mark一下,记得不要用空字符比较作为判断react state是否发生变化

13 阅读1分钟

上班期间写了一个小bug,mark一下,希望能帮助遇到同样困扰的萌新~(背景:React项目)

  1. 假设有 [a, setA] = useState('')
  2. 然后在useEffect中有可能setA
  3. 然后再html用{a === ''}去判断a是否发生变化
  4. 然后默认useEffect的setA是一定有值
  5. 然而,当useEffect里面发生setA(undefined)的时候,就会变成判断undefined === ''
  6. 你猜下undefined === ''返回什么?!我以为是undefined转为false, ''转为false,所以false===false,应该返回true才对 7.然而却是返回false!看看chatgpt咋说的:

image.png

image.png

这件事情暴露了自己基础不够扎实的问题,希望各位萌新可以注意一下,上班期间写的,比较简略,谅解一下,3q~