当前位置: 首页 > 知识库问答 >
问题:

React:如果子组件不返回null,则将其包装到div中

赵俊晤
2023-03-14

使用React,如果一个子组件在呈现时不返回null,它如何有条件地包装到另一个元素中?

export const Parent = ({children}) => (
  <div className="row">
    {React.Children.map(children, child =>
      <div className="col-6 col-s-4 col-md-3">
        {child}
      </div>
    )}
  </div>
);

这可能与React component children detect if empty/null before render中的讨论有关。但是,建议的方法似乎都不起作用(ReactDOMServer.renderToStaticMarkup似乎与SSR有问题,React.isValidElement始终将返回null的组件视为有效元素)。我有一种感觉,这是一种反模式,因为这似乎真的很难做到。目前我能想到的唯一解决方案是将列div移动到子组件中,并将一个道具克隆到子组件中,以通知它需要一个包装列div。。。这似乎有点老套。

共有1个答案

充阳秋
2023-03-14

如果你不想使用

const isChildNull = children => {
  return !Boolean(ReactDOMServer.renderToStaticMarkup(children));
};

尝试:

const isChildNull = children => {
  return Boolean(children.type() === null); //--> will return the tag type
};

编辑:此处的工作示例:https://stackblitz.com/edit/react-a29daw

 类似资料:
  • 将从非null元素返回最小值。 我想编写一个查询,将NULL视为可能的最小值。 我见过使用特殊值的日期技巧,如下所示:https://stackoverflow.com/a/32240382/7810882 但是,如果列的类型是并且没有可以映射到的特殊值怎么办?

  • 我已经连接表与一个 新娘模型: 计划模型: 我有一个查询将这些数据返回到endpoint。 一切都很好,除了一件事。在婚宴桌上,一些身份证上没有计划。因此,当我返回数据时,一些带有一个空的数组。 我想阻止这种情况。如果没有计划,那么我不想返回该新娘id。在这里我如何才能实现我想要的?

  • 问题内容: 我的“设备”表中有以下数据 我执行以下查询 返回下面给出的结果 如何得出这一点,以便它应该忽略NULL并且结果应该是 问题答案: 通过将其包装在空字符串中来转换值

  • 我目前正在运行一个完整的节点,并试图循环处理一些事务。每当我使用Web3j并使用和我到达一个包含合约的事务(就像这个)并使用函数它返回一个空值。我有办法检索合约地址吗? 编辑:这是我用来获取交易的代码 这将返回一个“null”

  • 到目前为止,我得到了indexOutOfBoundsException错误

  • 问题内容: 在MySQL中,是否可以将“总计”字段设置为零(如果它们为NULL)? 这是我所拥有的: 数据输出正常,但NULL字段应为。 如何在MySQL中为NULL返回0? 问题答案: 使用IFNULL: 从文档中: 如果expr1不为NULL,则IFNULL()返回expr1; 否则返回expr2。IFNULL()返回数字或字符串值,具体取决于使用它的上下文。