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

React PropTypes检查错误的类型

金晨
2023-03-14

我有一个问题的PropTypes定义在反应,我定义的类型的doc_count_error_upper_bound字段的类型是类型的数字,但它得到检查对类型的对象。我假设某个地方的PropTypes定义由于某种原因而崩溃,因为数据和定义似乎都是正确的,其他字段都被处理得很好。

该应用程序由一系列组件组成,这些组件组织成反应网格布局https://github.com/STRML/react-grid-layout

道具类型警告:

 index.js:1 Warning: Failed prop type: Invalid prop `data[0].subAggregationTerm.doc_count_error_upper_bound` of type `number` supplied to `MultiBarChart`, expected `object`.
        in MultiBarChart (at App.jsx:219)
        in div (at App.jsx:179)
        in div (at App.jsx:178)
        in Resizable (created by GridItem)
        in DraggableCore (created by GridItem)
        in GridItem (created by ReactGridLayout)
        in div (created by ReactGridLayout)
        in ReactGridLayout (created by ResponsiveReactGridLayout)
        in ResponsiveReactGridLayout (created by WidthProvider)
        in WidthProvider (at App.jsx:231)
        in div (at App.jsx:229)
        in App (at src/index.js:6)

组件属性类型定义

MultiBarChart.propTypes = {
  data: PropTypes.arrayOf(
    PropTypes.shape({
      key_as_string: PropTypes.string,
      key: PropTypes.number,
      doc_count: PropTypes.number,
      subAggregationTerm: PropTypes.objectOf(PropTypes.shape({
        doc_count_error_upper_bound: PropTypes.number,
        sum_other_doc_count: PropTypes.number,
        buckets: PropTypes.arrayOf(PropTypes.shape({
          key: PropTypes.number,
          doc_count: PropTypes.number,
        })),
      })),
    }),
  ).isRequired,
  onHit: PropTypes.func.isRequired,
};

数据:

const dateHistogramSubAggs2 = [{
  key_as_string: '1576105200',
  key: 1576105200000,
  doc_count: 0,
  subAggregationTerm: {
    doc_count_error_upper_bound: 0,
    sum_other_doc_count: 0,
    buckets: [{
      key: 'label_1',
      doc_count: 215,
     }],
   },
 }];

共有1个答案

楚鸿波
2023-03-14

我想你可以解决你的问题删除PropTypes.object,只留下PropTypes.shape(在这里你可以看到为什么):

MultiBarChart.propTypes = {
  data: PropTypes.arrayOf(
    PropTypes.shape({
      key_as_string: PropTypes.string,
      key: PropTypes.number,
      doc_count: PropTypes.number,
      subAggregationTerm: PropTypes.shape({
        doc_count_error_upper_bound: PropTypes.number,
        sum_other_doc_count: PropTypes.number,
        buckets: PropTypes.arrayOf(PropTypes.shape({
          key: PropTypes.number,
          doc_count: PropTypes.number
        }))
      }),
    }),
  ).isRequired,
  onHit: PropTypes.func.isRequired,
};
 类似资料:
  • 对于我的刽子手游戏,我想有一堆错误信息来检查输入的不止一个字母,猜测同一个字母两次,等等。到目前为止我的完整代码: 我遇到的最大问题是检查用户是否输入了相同的字母两次。所以你只能猜一次字母表中的一个字母。此外,它检查用户输入的多个字母是否有错误的代码,我相信,因为如果我不希望它将这些字母添加到猜测字母框中,它会以任何方式添加这些字母。(即,用户猜测“hf”,在猜测的字母中出现“hf”,在这里它应该

  • 假设我有这样一个函数: 我想测试它是否使用Jest抛出一个(不仅仅是一个)。 然而,这项测试通过了。 如何检查Jest中异步抛出的错误类型?

  • 问题内容: 假设您有一个像这样的函数: 而您通常以这种方式使用它: 在这里检查错误的惯用方式是什么?更具体的问题: 如果我们可以假设永远是零,反之亦然? 我们首先要检查什么:(无)或(确认不是零)? 在某些情况下可以是真的吗? 谢谢! 问题答案: 比较 《错误处理编程指南》中从方法返回的处理错误对象: 重要提示: 方法的返回值指示成功或失败。尽管在方法可通过直接返回nil或NO指示失败的情况下,保

  • 我为跳棋游戏创建了两个类。一个是木板,另一个是碎片。我所面临的困难是,对于这些碎片,我似乎无法让它们移动,也无法让它们正确地停留在那个位置,事实上,由于我不了解这里到底出了什么问题,我无法再前进了。有人能纠正我做错了什么吗。 这是拼图课

  • 在处理上述异常的过程中,发生了另一个异常: 回溯(最近的调用为last):文件“C://users/vvel/pycharmprojects/untitled/asd.py”,第58行,在validate_object()文件“C://users/vvel/pycharmprojects/untitled/asd.py”中,第54行,在validate_object tc.is_type(inst

  • 问题内容: 调用Web服务时,我使用以下方法检查超时,但是我想专门检查是否返回超时错误。我该怎么做:S 我有这个: 问题答案: 作为go1.6的,从超时所有错误应符合与正确设置。您需要检查的只是: 在旧版本中,通过http包检查超时更为困难。 如果您在基础连接上设置了“截止日期”,则可以使用Timeout()获得一个。 您可以获得一个(显然不会导出)实现该接口的文件。 如果url包内有问题(初始连