当前位置: 首页 > 面试题库 >

只允许在React组件中使用特定类型的子代

南宫勇军
2023-03-14
问题内容

我有一个Card组件和一个CardGroup组件,当CardGroup有不是Card组件的子代时,我想抛出一个错误。这可能吗,还是我想解决错误的问题?


问题答案:

您可以为每个孩子使用displayName,可通过以下类型进行访问:

for (child in this.props.children){
  if (this.props.children[child].type.displayName != 'Card'){
    console.log("Warning CardGroup has children that aren't Card components");
  }  
}


 类似资料:
  • 我有一个组件和一个组件,当有一个子组件不是组件时,我想抛出一个错误。这是可能的,还是我试图解决错误的问题?

  • 我想只允许特定的组件作为孩子。例如,假设我有一个Menu组件,它应该只包含作为子组件,如下所示: 因此,当我尝试将另一个组件作为子组件时,我希望Typescript在IDE中抛出一个错误。有东西警告我,我应该只作为孩子使用。例如,在这种情况下: 此线程几乎类似,但不包括TypeScript解决方案。我想知道这个问题是否可以使用TypeScript类型和接口来解决。在我想象的世界中,它看起来是这样的

  • 我有这样一个功能组件:

  • 假设我们有一个带有签名的函数 是否有可能实施一个约束来确保a和b是不同的?那就是 这个问题的目的是了解更多关于Haskell的信息,并可能解决我面临的一个设计问题。如果a==b,我的特殊情况是没有意义的,所以我想在编译器级别禁止这样做。我可能会用一个完全不同的设计来解决这个问题,但这不仅仅是现在的重点--潘多拉盒子已经打开,我想知道类型级别上的等式约束是否可能。

  • 问题内容: 我正在创建一个页面,供用户上传文件。如果文件类型是其他jpg,gif和pdf,我希望使用if语句创建$ error变量。 这是我的代码: 我在构造if语句时遇到困难。我怎么说呢 问题答案: 将允许的类型放入数组并使用。

  • 这个问题被问了好几次,我花了好几个小时来研究答案。但是,我无法使我的代码正常工作。问题就在这里。 我有一个组件,它是一个包装器。我有多个组件作为子组件进入组件。 在我的组件中,我想创建一个新的子数组,它只由组件组成。我只想忽略其他一切。同时在控制台上显示一些警告,除了组件子元素之外的任何内容都将被忽略,这很好,但无论如何,这在这一点上并不重要。 问题是,我正在使用TypeScript,无法访问。