【问题标题】:React JS useState hook not working with curly bracesReact JS useState钩子不适用于花括号
【发布时间】:2022-07-19 00:15:37
【问题描述】:

有人能解释一下为什么在 increment 函数中用花括号包围 prev + 1 时这段代码无法正常运行吗?

export default function Counter() {
  const [clickCount, setClickCount] = useState(0);

  useEffect(() => {
       document.addEventListener('mousedown', increment);
       return () => {
           document.removeEventListener('mousedown', increment);
      };
   });

   // your code here
  const increment = () => {
      setClickCount((prev) => {prev + 1})
  }

  return (
      <h1>Document Clicks: {clickCount}</h1>
  );
}

【问题讨论】:

  • 因为你错过了return。应该是setClickCount((prev) =&gt; {return prev + 1})

标签: reactjs use-effect use-state


【解决方案1】:

箭头函数默认返回表达式结果,但没有{}

如果你想用{}记得加return:(prev) =&gt; {return prev + 1}

【讨论】:

    【解决方案2】:
     setClickCount((prev) => { return prev + 1})
    

    你必须返回一个值才能工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-26
      • 1970-01-01
      • 2023-03-19
      • 2021-02-07
      • 1970-01-01
      • 2020-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多