javascript - React 使用 ReactDOM.render 和注入(inject)组件的不良做法?

标签 javascript reactjs

所以我从来没有真正这样做过,但我可能不得不为了解决我在第 3 方库中遇到的某个问题而这样做。

基本上,做这样的事情是不是不好

const fooEl = document.querySelector('.foo-class');
const newDiv = document.createElement('div');
const id = 'testingId';
newDiv.id = id;
foolEl.appendChild(newDiv);

ReactDOM.render(
    <FooBarComponent />
  document.getElementById(id)
);

如果是这样,我还有其他方法可以解决这个问题吗?基本上我正在尝试将组件插入到 DOM 元素中。

最佳答案

Is it bad to do something like...

不,你的代码很好,只是你忘记了 ReactDOM.render() 中的 , 。 除此之外,没有什么“不好”的地方。如果您这样做,则可以用更少的行数获得相同的结果:

const fooEl = document.querySelector('.foo-class');
const newDiv = document.createElement('div');
foolEl.appendChild(newDiv);

ReactDOM.render(
  <FooBarComponent />,
  newDiv
);

但是,从您的问题中并不清楚为什么需要将 React 应用程序安装到 .foo-class 的子 div 上,而不是仅仅将其安装在直接 foo-class - 就像这样:

ReactDOM.render(
  <FooBarComponent />,
  document.querySelector('.foo-class')
);

关于javascript - React 使用 ReactDOM.render 和注入(inject)组件的不良做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55387140/

相关文章:

reactjs - 我怎样才能准确匹配嵌套在 React 路由器 6 中的路由?

javascript - 当我尝试启动 React 应用程序时,我不断收到 "Failed to load resource"

javascript - 传单 - map 的顶部始终指向传感器的前进方向

javascript - 我可以写一个无限柯里化(Currying)的函数吗?

reactjs - Firebase 托管 + 使用 webpack 进行 React

javascript - 将组件重新渲染到已渲染的容器无法按预期工作?

javascript - 从用户信息返回一个值并将其显示在输入中

javascript - 检查元素是否有特定的 id

javascript - "more/less"切换内容

javascript - 从 navigator.mediaDevices.getUserMedia() 获取字节流?