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

React在我的React应用程序上实现shouldComponentUpdate并具有

龚德本
2023-03-14

我在React应用程序上使用loadingData状态实现ShouldComponentUpdate时遇到了困难。当nextProps没有从this.props更改时,我想防止组件再次加载,它工作得很好,但它搞乱了loadingdata值,我找不到原因。

  constructor(props){
    super(props)
    this.state = {
      loadingData: false,
    }
  }

  async componentDidMount() {
    this._isMounted = true;
    const { username } = this.state
    this.setState({ loadingData: true })

    try {
      await this.props.getUserData(username)
      this.setState({ loadingData: false })
    } catch (err) {
      console.log(err)
      this.setState({ loadingData: false })
    }
  }

  shouldComponentUpdate(nextProps, nextState) {
    return this.props !== nextProps
  }

render() {
  return(
    <div>{this.state.loadingData ? "Loading..." : this.props.userData}</div>
  )
}

共有1个答案

昌勇锐
2023-03-14

这将始终返回false,因为在每个呈现之间This.propsnextprops是不同的对象。

举一个最简单的例子:

console.log({} === {}) // false
 类似资料:
  • 大家好,我曾经在项目上工作过一段时间,但现在我的应用程序无法在上运行。到目前为止,我尝试了以下方法 更新了/重新安装node.js 创建新的应用程序使用但仍然不工作 我用检查了端口是否已打开,但不存在。但是。因此,我尝试运行未成功。 我使用的是OS和最新版本的nodejs

  • 问题内容: 我一直在阅读以下链接: https : //reactjs.org/docs/hooks-faq.html#how-do-i- implement-shouldcomponentupdate https://reactjs.org/blog/2018/10/23/react -v-16-6.html 在第一个链接中显示为(https://reactjs.org/docs/hooks-f

  • 新的反应和反应路由器,使我有许多网页的工作。我在我的它看起来是这样的 我的租赁组件看起来像这样。 我要做的是创建一个名为localhost:3000/rentals的页面,它只在新页面中显示“rentals”组件中的段落。但是当我点击房屋上的租赁链接时。在jsx中,它显示“主”组件中的所有组件,包括图片、页眉和页脚组件 我尝试在路线上使用精确路径,但什么也没发生。我怎样才能做到这一点?

  • 我正在考虑使用React将我的web应用程序实现为PWA。我想要实现的主要特性是缓存从API获取的JSON数据,以便它在脱机模式下工作。然而,我不知道如何在React中对服务人员进行编码。

  • 基本上,我有一个非常简单的react组件。它所做的是,环绕“反应-对讲机”,只有当状态发生变化时才会呈现它。为了简化这个问题,我硬连接了方法以始终返回false。 发生的是它总是重新发送,这不应该发生。 有人知道为什么会这样吗?

  • 我需要在React中使用CORS节点模块,React是使用实用程序创建的。 由于它是一个实用程序,我不能调整内部并将CORS注入预配置的EXPRESS模块。 我们如何才能做到这一点?