【问题标题】:React: Prop type must be a function, but received object [duplicate]React:道具类型必须是函数,但接收到对象[重复]
【发布时间】:2021-03-29 12:40:14
【问题描述】:

我对这个错误消息感到困惑,并且已经走到了谷歌搜索的死胡同。如果您有见解,请告诉我!

Warning: Failed prop type: Results: prop type `leoInfo` is invalid; it must be a function, usually from the `prop-types` package, but received `object`.

模板:

const StateTool = ({ state, leoInfo }) => {
  return (
    <>
      {/* other stuff */}
      <LEOLink leoInfo={leoInfo} state={state} />
    </>
  );
};

道具:

StateTool.propTypes = {
  state: PropTypes.string,
  leoInfo: {
    regionId: PropTypes.string, 
    phoneNumbers: PropTypes.arrayOf(PropTypes.string),
  },
};

【问题讨论】:

  • 您好! React.PropTypes.shape() 不需要直接 {} :)
  • 如果您的任务得到解决,请投票并接受答案。 :) 快乐编码

标签: javascript reactjs


【解决方案1】:

对象道具类型必须使用PropTypes.shape(...)声明:

StateTool.propTypes = {
  state: PropTypes.string,
  leoInfo: PropTypes.shape({
    regionId: PropTypes.string, 
    phoneNumbers: PropTypes.arrayOf(PropTypes.string),
  }),
};

【讨论】:

    【解决方案2】:

    这个问题在这里已经有了答案。

    How do you validate the PropTypes of a nested object in ReactJS?

    所以你基本上需要React.PropTypes.shape({})

    【讨论】:

    • 感谢您的链接!
    • 这是我的荣幸 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 2019-10-10
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多