当前位置: 首页 > 知识库问答 >
问题:

this.setState 真的会让组件重新呈现吗?

闻人业
2023-03-14

关于这个.setState在类组件中的东西让我感到困惑。在 react docs 中,我读到 this.setState 在 react docs 中可能是异步的。我对此没问题,我通过在此之后记录更新的值对其进行了测试。setState。但这真的让我感到困惑:当我们调用this.setState时,react调用类的渲染方法来重新渲染ui。但是 this.setState 是异步的,这意味着将调用第一个渲染方法,并且 react 将重新渲染 ui,然后状态中的值将被更改!那么组件如何向我们显示更新的值?我没有。。。我想对吗?感谢您的帮助。

共有1个答案

翁和颂
2023-03-14

这setState是异步的,这意味着第一个呈现方法将被调用,ui将由react重新呈现,然后状态中的值将被更改!那么组件如何向我们显示更新的值呢?我不…我想的对吗?

我认为你错过了一些东西.setState是异步的,这意味着这些操作被批处理在一起以提高性能。但是为什么?因为它不是WebAPI或服务器调用?这是因为 setState 会更改状态并导致重新呈现。这可能是一个代价高昂的操作,并且使其同步可能会使浏览器出现意外行为。

 类似资料:
  • 我是新来的反应。作为一个学习练习,我正在构建一个国际象棋应用程序 我想根据父级中的状态更改子级的DOM。当前,在父级组件的状态变化时,子级组件没有变化。 PS:请忽略任何语法错误。这段代码是实际代码的精简。如果你想看完整的代码,请看这里

  • 问题内容: 我是新来的世界,我有这样的话: 然后单击,您将被打印在控制台上。现在将行更改为: 现在点击该按钮,我希望它会被渲染。但事实并非如此。 我不确定为什么会这样。请注意,我在方法中有上面的代码。 问题答案: 您可能希望有一个状态组件,该状态组件在单击按钮之后在按钮旁边显示另一个组件。您需要做的就是跟踪按钮是否被单击:

  • 是否有系统的方法来调试导致组件在React中重新呈现的原因?我放了一个简单的console.log()来查看它呈现多少次,但很难弄清楚是什么导致组件呈现多次,即在我的情况下(4次)。是否存在显示时间线和/或所有组件、树呈现和顺序的工具?

  • 在我点击提交按钮后,我如何使页面刷新或更新页面中的内容?我尝试将(我知道不是React方式,具有相同的结果)放入提交函数(、)中,但POST请求没有得到响应 OpenTickets.js CardConversation.jsx

  • 在处有一个react-apollo GraphQL连接的用户组件,它请求用户列表。 如果没有提供令牌,服务器将返回身份验证错误;该组件将呈现到路由;成功登录后,login组件将保存令牌并重定向回来。 Users组件包装器启动graphql请求并呈现“Loading...”同时。当graphql请求成功时,它将重新发送并显示用户,yay. 如果从该页注销,中的注销组件将丢弃该标记,然后重定向回来;U

  • 问题内容: 我要说的是今天要学习react和redux,但是我不知道如何在状态更改后强制组件重新渲染。 这是我的代码: 我可以触发更新的唯一方法是使用 在构造函数内部,以便我手动触发组件的更新状态以强制重新渲染。 但是如何链接存储状态和组件状态? 问题答案: 仅当组件的状态或道具发生更改时,组件才会重新渲染。您不是依靠this.state或this.props,而是直接在render函数中获取存储