道具类型失败:提供给“表”的“字符串”类型的道具“ rowConfig.uniqueKey”无效,对象是“对象”

时间:2018-12-08 04:28:33

标签: javascript reactjs react-proptypes

我曾经使用过像类型检查这样的流程,但是现在我必须使用prop-types我遇到了以下问题

  

道具类型失败:rowConfig.uniqueKey类型的道具string无效   提供给Table,预期object

在流类型中,我做了以下

type Props = {
  columns: {
     [key: string]: {
       key: string,
       label?: string,
     }
   },
   rowConfig?: {
     uniqueKey?: string,
     css?: string,
     onClick?: Function
   },
}

对于道具类型,我按照以下方式进行,但是我遇到了错误。为什么呢?因为我使用了PropTypes.string,它仍然需要一个对象。

Table.propTypes = {
  columns     : PropTypes.objectOf(
    PropTypes.shape({
      key          : PropTypes.string.isRequired,
      label        : PropTypes.string,
    })
  ),
  rowConfig  : PropTypes.objectOf(
    PropTypes.shape({
      uniqueKey: PropTypes.string,
      css      : PropTypes.string,
      onClick  : PropTypes.function
    })
  ),
};

2 个答案:

答案 0 :(得分:0)

尝试一下:

Table.propTypes = {
  columns     : PropTypes.shape({
     key: PropTypes.string.isRequired,
     label: PropTypes.string,
  }),

  rowConfig  : PropTypes.shape({
     uniqueKey: PropTypes.string,
     css      : PropTypes.string,
     onClick  : PropTypes.function
  })
};

答案 1 :(得分:0)

对不起。代表不够高,无法发表评论。您的组件名为Table?您能否提供更多信息? (状态等)。您可能需要同时删除两者的Proptype.objectof。