reactjs - 如何在 React 中获取渲染的 JSX?

标签 reactjs jsx

想象一个Container组件,它渲染一个具有指定高度div,例如:

<Container height="80">
  Hello World
</Container>

enter image description here

MyHeader 组件,渲染具有特定高度Container,例如:

function MyHeader() {
  return (
    <Container height="100">
      Header content goes here
    </Container>
  );
}

现在,我想实现一个如下所示的 Fixed 组件:

<Fixed>
  <Fixed.Item>
    <MyHeader />
  </Fixed.Item>
  <Fixed.Content>
    Some content goes here
  </Fixed.Content>
</Fixed>

渲染 Fixed.Content 时,我想自动将其偏移设置为 100px(因为 MyHeader 的高度为 100px)。

有没有办法让 Fixed 组件获取 MyHeaderheight 以便将其传递给 Fixed.Content

是否有更好的方法来自动化此操作?

注意:使用useEffect(或componentDidMount)不是一个选项,因为我希望它在服务器渲染环境中工作。

最佳答案

通常,您希望数据从 parent 流向 child 。如果这不适合您,您可以使用上下文:https://reactjs.org/docs/context.html 。特别查看https://reactjs.org/docs/context.html#updating-context-from-a-nested-component 。在您的情况下, MyHeader 可能是您上下文的 Consumer 并用其高度更新它,并且 Fixed.Content 也将是一个消费者使用该值作为其偏移量。但总的来说,我想说你想做的事情有点不自然。

关于reactjs - 如何在 React 中获取渲染的 JSX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60716137/

相关文章:

javascript - 在同一页面上使用相同的 ReactJS 表单组件

javascript - 不确定为什么 res.send 不将我的对象发送到前端

javascript - 使用 React Router v4 是否可以在子组件中创建多级路由?

javascript - React 中的 'Suspense' 是什么?它与 Promise 有何关系?

node.js - 术语 'CI=false' 未被识别为 cmdlet、函数、脚本文件或可运行程序的名称

javascript - 将 (this.state) 类型变量直接插入 JSX

javascript - 如何对单个图像执行或处理多个操作?

reactjs - Google Maps React - 没有重载与此调用匹配

javascript - React-native 变量与状态

javascript - 如何让我的菜单逻辑更简洁?