首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反应,getElementByID

反应,getElementByID
EN

Stack Overflow用户
提问于 2022-01-14 08:12:23
回答 3查看 1.9K关注 0票数 0

如何将正常的DOM操作设置为对DOM的反应

这是我的密码

尝试了不同的方法,因为我得到了持续的错误

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-01-14 08:25:45

状态是正确的,但是您需要在呈现之后使用getElementById,使用函数useeffect来完成它,就像下面这样:

代码语言:javascript
复制
  React.useEffect(() => {
  
let ws = new WebSocket('wss://stream.binance.com:9443/ws/etheur@trade');
let stockPriceElement = document.getElementById('stock-prize');


ws.onmessage = (event)=>{
    let stockObject = JSON.parse(event.data);
    stockPriceElement.innerText = parseFloat(stockObject.p).toFixed(2);
}
return () => ws.close(); //closes connection on unmmount
  }, [])

如果能用的话请告诉我

票数 0
EN

Stack Overflow用户

发布于 2022-01-14 08:23:29

DOM找不到这个元素。

代码语言:javascript
复制
let stockPriceElement = document.getElementById('stock-prize');

未定义stockPriceElement,请尝试对其进行控制台记录。

请共享代码框链接,以便我能帮助您更多。

票数 1
EN

Stack Overflow用户

发布于 2022-01-14 08:24:13

  1. 您不应该在React中使用DOM操作来更新DOM。
  2. 使用状态来管理数据。如果数据位于组件树的其他位置,请使用context API或全局状态。
  3. 您所得到的错误是因为当您的代码执行时,目标元素尚未呈现。使用ref访问DOM节点。关于参考文献这里的更多信息
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70707717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档