javascript - 如何使用自定义 DOM 节点在 React 组件中进行渲染

标签 javascript dom reactjs

我有以下问题:

我想编写 jsx 代码,例如

<div className="my-section">
   <Window>
       <div>Window content</div>
   </Window>
</div>
<div className="window-container">
</div>

在我的 react 内容中的某处,但我希望窗口与其他窗口一起呈现在特殊的 DOM 元素中,例如

<div class="my-section"></div>
<div class="window-container">
    <div class="window">
        <div>Window Content</div>
    </div>
</div>

为了透明地执行此操作,我需要告诉组件从组件内渲染到特殊的 DOM 节点。有没有办法做到这一点?如果没有,我应该如何从 React 中实现我正在寻找的功能?

最佳答案

您正在寻找特殊的 this.props.children 列表。

When you create a React component instance, you can include additional React components or JavaScript expressions between the opening and closing tags like this:

<Parent><Child /></Parent>

Parent can read its children by accessing the special this.props.children prop.

这将允许您在元素内定义子元素,然后将它们插入到任意点进行渲染。

render() {
  return (
    <div className="window container">
      <div className="window">{this.props.children}</div>
      <div className="window"></div>
      ...
    </div>
  );
}

关于javascript - 如何使用自定义 DOM 节点在 React 组件中进行渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35200985/

相关文章:

javascript - 通过 javascript 删除 html 元素样式

javascript - jQuery 对象上下文的区别

javascript - 警报后窗口重定向到特定位置

javascript - 通过 JS 代码禁用元素 - 不起作用

javascript - 动态时钟中 div 或文本的 CSS 样式

reactjs - 如何修复无法解析模块react redux hooks\useDispatch?

javascript - 从对象数组渲染组件

javascript - 通过 Sharepoint 发送到 Outlook 的电子邮件中未显示换行符

javascript - 向 iframe 添加事件监听器

reactjs - 将多个图像从 python 服务器发送到 react 前端