如果不为空,则反应分配值

React Assign Value If Not Null

当我执行以下操作时:

let ContentAreaHeight = document.getElementById('contentArea').clientHeight;

我收到 Cannot read property 'clientHeight' of null 错误,第一次加载页面时,出现此错误是正常的。因此,我试图提出一个空检查并在不为空的情况下分配值,就像下面的选项之一一样,但都不起作用,仍然给出相同的错误。

选项1

let ContentAreaHeight = (document.getElementById('contentArea').clientHeight) || 0;

选项2

let ContentAreaHeight = (document.getElementById('contentArea').clientHeight !== null) ?
                    document.getElementById('contentArea').clientHeight : 0;

找了这么多地方都没找到解决办法,看似简单实则无济于事..

我将这段代码放在 const content = ({ pageURL, dataStatus }) => {return (

您应该在致电前检查 .clientHeight

let ContentAreaHeight = document.getElementById('contentArea');
if (ContentAreaHeight) ContentAreaHeight = ContentAreaHeight.clientHeight

以下是我找到的最佳方法:

let ContentArea = document.getElementById('contentArea');
let ContentAreaHeight = 0;
if(ContentArea != null & ContentArea > 0)
     ContentAreaHeight = ContentArea.clientHeight;

确保将它放在 componentWillUnmount() 以及 componentDidUpdate() 生命周期内。