React操作dom,想在引用的原有组件的某一个节点上包一层div(类似jQuery的wrap),操作了一天了,没成功

clipboard.png

如上图,截图的代码整体是一个组件,不能直接修改组件,因为是引用的一个ui库的,需要不断升级,只能引用该组件,需要在table的外面再包一个div
类似下图

clipboard.png

用了createPortal方法,只能在table的下方插入一div,不是想要的结果,请教有经历过的大神~

阅读 3.5k
3 个回答

在外层组件,比如App组件的componentDidMount中操作

// App.js
componentDidMount() {
    const table = document.getElementById('main-table');
    const div = document.createElement('div');
    const cloneTable = table.cloneNode(true);
    div.appendChild(cloneTable);
    table.parentElement.replaceChild(div, table);
}

你在render里给他包一层不就好了

千万不要在react中操作dom.
可能你已经熟悉jquery,在react中使用jquery的思维还解决问题。
操作dom引起的问题,排查都很困难。
比如:
明显state的值变了,页面就是不render.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题