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

ReactJs:这个.props.children的PropType应该是什么?

邵伟
2023-03-14
问题内容

给定一个呈现其子级的简单组件:

class ContainerComponent extends Component {
  static propTypes = {
    children: PropTypes.object.isRequired,
  }

  render() {
    return (
      <div>
        {this.props.children}
      </div>
    );
  }
}

export default ContainerComponent;

问题:孩子道具的propType应该是什么?

当我将其设置为对象时,当我将组件与多个子级一起使用时,它将失败:

<ContainerComponent>
  <div>1</div>
  <div>2</div>
</ContainerComponent>

警告:无法道具类型:无效的支柱children型的array 供给ContainerComponent,预计object

如果将其设置为数组,则如果我仅给其一个孩子,则它将失败,即:

<ContainerComponent>
  <div>1</div>
</ContainerComponent>

警告:prop类型失败:提供给ContainerComponent的对象类型无效的prop子代,预期数组。

请告知,我是否不应该为子元素做propTypes检查?


问题答案:

尝试使用oneOfType或类似的方式PropTypes.node

import PropTypes from 'prop-types'

...

static propTypes = {
    children: PropTypes.oneOfType([
        PropTypes.arrayOf(PropTypes.node),
        PropTypes.node
    ]).isRequired
}

要么

static propTypes = {
    children: PropTypes.node.isRequired,
}


 类似资料:
  • 给定一个呈现其子级的简单组件: 问题:儿童道具的道具类型应该是什么? 当我将其设置为对象时,当我使用具有多个子级的组件时,它会失败: 警告:失败的道具类型:提供给

  • 这与自定义Gradle Java插件在V5.2.1中崩溃有关,但在V4.7中工作?。警告-我不是Java程序员。 我有这个代码来实现一个插件,它崩溃了(根据其他帖子)。

  • 我正在用ReactJS重建我的投资组合,因为我正在学习这种新语言,我有一个问题。我应该只在没有内容需要更新的网站中使用状态或道具吗? 这是我的主课:

  • 这是我试图做的一个例子: 我注意到它在使用时对第二个自定义验证器进行验证 有没有一种方法可以添加多个验证模式,让proptypes使用在reactjs中签入?

  • 在react中,您可以设置进入组件的道具的道具类型。对于我的一个道具,我希望值为null或一行JSX。React文档没有涵盖JSX应该使用的propType。 在测试时,我发现它在使用对象或元素的propTypes时不会抛出错误。当使用另一个符号(如符号)时,我会得到一个错误,表示它是一个对象。如果它是一个对象,当它是一个元素时,它肯定会抱怨。 JSX的正确类型是什么?

  • 我正在尝试创建一个使用在我的数据库中创建新对象的REST API。我正在使用Slim框架。 问题是我不确定在我的< code>POST方法的这些行中到底应该放些什么: 我的完整路由是: 在表< code>cars中有对象< code>Car。 我应该这样说吗?: 我有点困惑,因为在我之前看到的教程中,在方法中,他们没有任何对路由中变量名称的引用。例如,如果他们使用,他们没有在其路由中声明任何名为的