首页 > 解决方案 > 我们在反应钩子中还需要功能性的 setState 方式吗?

问题描述

  const [count, setCount] = useState(0);

  const handleClick = () =>
    setCount(prevCount => {
      return prevCount + 1;
    });
  const [count, setCount] = useState(0);

  const handleClick = () => setCount(count + 1);

来自基于类的组件背景,它成为我们使用函数式的习惯setState。我想知道我们是否还需要在功能挂钩中依赖 prevState?还是当前状态始终是“可信赖的”和最“更新的”?

标签: javascriptreactjsreact-nativereact-hooks

解决方案


的,行为是相似的。

React 正在批处理更新调用。写作时:

const handleClick = () => setCount(count + 1)
handleClick()
handleClick()
handleClick()

countin 状态将为1

写作时:

const handleClick = () =>
  setCount(prevCount => {
    return prevCount + 1;
});
handleClick()
handleClick()
handleClick()

count状态将是3


推荐阅读