react js中如何知道组件渲染情况

Posted

技术标签:

【中文标题】react js中如何知道组件渲染情况【英文标题】:how to know the component rendering condition in react js 【发布时间】:2020-08-31 04:28:25 【问题描述】:

我有一个组件也呈现为子组件,或者用户可以直接从 UI 菜单导航到该组件。我现在面临的一个问题是,如果该组件作为子组件,那么它工作正常,但是当我单击菜单直接导航时,我的 getDerivedStateFromProps() 函数会抛出错误,因为

TypeError: 无法读取未定义的属性“长度”

下面是我的代码。如果我将数据从父组件发送到该组件并从父组件呈现它,它将正常工作。

static getDerivedStateFromProps(props, state) 
    if (props.data.length)// this line is throwing an error when I directly come to this component from menu 
      const data = props.data;
      return  custData : data ;
    
    return null;
  

如果我直接进入该组件,如何检查不执行上述逻辑的条件。

【问题讨论】:

【参考方案1】:

检查数据是否存在

 if (props?.data)

【讨论】:

【参考方案2】:

您可以像这样仔细检查:

if (props.data && props.data.length)

【讨论】:

哦!它是如此简单,但仍然错过了它。非常感谢您的快速帮助。已接受答案 @Nilesh,很高兴知道,它有帮助

以上是关于react js中如何知道组件渲染情况的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React js 中渲染功能组件之前获取数据

如何在没有要映射的对象数组的情况下在 React.js 中循环和渲染元素?

如何正确检测 React JS 中的重新渲染?

在 vue.js 组件中渲染子组件

Next.js:如何将仅外部客户端的 React 组件动态导入到开发的服务器端渲染应用程序中?

在 React.js 的功能组件中首次渲染之前调用 api