reactjs - 在 react 中使用 useState 钩子(Hook)时设置后立即读取组件状态

标签 reactjs react-hooks

这个 console.log 不工作:它只会打印以前的状态值,因为 setasync

const SomeCompo = () => {
  const [count, set] = useState(0);
  const setFun = () => {
    console.log(count);
    set(count + 1);
    console.log(count);    
  }
  return <button onClick={setFun}>count: {count}</button>
}

我必须在渲染本身中读取计数:

const SomeCompo = () => {
  const [count, set] = useState(0);
  console.log(count);
  const setFun = () => {
    set(count + 1);
  }
  return <button onClick={setFun}>count: {count}</button>
}

有没有更好的方法来读取值,因为我不想对每个渲染进行控制台。

最佳答案

您可以使用 useEffect为此,

useEffect(() => {
   console.log(count);
}, [count]) //[count] is a dependency array, useEffect will run only when count changes.

关于reactjs - 在 react 中使用 useState 钩子(Hook)时设置后立即读取组件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58047171/

相关文章:

html - 如何使用 CSS flexbox 架构设置文本组件的样式?

javascript - API调用 react ,componentDidUpdate或eventHandler中的事件?

reactjs - 必须在 React 函数组件或自定义 React Hook 函数中调用 React Hooks

javascript - 在 dangerouslySetInnerHTML 中从 onclick 调用 React 组件函数

reactjs - 在专注于输入时按 enter 会触发同级按钮

javascript - 如何防止我的功能组件使用 React memo 或 React hooks 重新渲染?

javascript - Material UI 多选 |如何对数组使用多重选择

reactjs - 使用 React Hooks 每秒改变颜色

javascript - 状态未在 react 中更新

css - 如何粘贴可滚动内容的标题,以及当内容超过标题时也应该滚动,然后发生下一个滚动内容