【问题标题】:setState doesn't do what it suppose to [duplicate]setState 没有做它应该做的事情[重复]
【发布时间】:2020-03-29 21:37:03
【问题描述】:

我正面临一个我从未见过的非常奇怪的错误。 我从服务器获取数据,我得到一个对象数组,然后我试图用获取的数据设置状态,但我的状态是空的!请帮助某人。

【问题讨论】:

  • 最好将代码以文本形式而不是图像形式发布(参见minimal reproducible example)。
  • setState 是异步的,因此不会立即看到效果。

标签: reactjs react-hooks


【解决方案1】:

在 React 中更新状态不是同步操作。 它是用于优化的异步(将更改组合在一起并且只更改一次状态)。

您可以使用useEffect 对更改做出反应:

useEffect(() => { console.log(state)}, [state])

或者您可以在return 中显示您的state(每次重新渲染组件时都会调用return,由于useState 调用,组件会重新渲染)。

【讨论】:

    【解决方案2】:

    react 中更新状态是一个异步操作。相反,您应该注销 useEffect 中的数据。

    useEffect(() => {
      console.log(state)
    }, [state]);
    

    【讨论】:

      猜你喜欢
      • 2011-09-28
      • 2020-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多