gpt4 book ai didi

javascript - componentDidMount 获取 DOM 节点出错

转载 作者:行者123 更新时间:2023-11-28 04:14:21 26 4
gpt4 key购买 nike

我收到 TypeError 错误:无法读取未定义的属性“offsetHeight”当尝试获取 dom 节点的 offsetHeight 时。

componentDidMount() {
setTimeout(function(){
console.log(this.contentBody.offsetHeight)
},1000)
}

我怀疑这是由于我的异步导致的,其中引用尚未设置。我的渲染方法如下所示

<div ref={elem => this.contentBody = elem} className="content-body" dangerouslySetInnerHTML={createMarkupFromReferenceContent()} />

我尝试在这里创建一个非ajax演示https://codesandbox.io/s/j46o2656vy它起作用了。这就是为什么我尝试上面的 setTimeout hack,但没有成功。知道如何解决这个问题吗?

最佳答案

您必须将 this 绑定(bind)到 setTimeout 回调函数。像这样:

componentDidMount() {
setTimeout(function(){
console.log(this.contentBody.offsetHeight)
},1000).bind(this);
}

关于javascript - componentDidMount 获取 DOM 节点出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45997654/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com