【问题标题】:Warning: Failed propType: Invalid prop of type `array` expected `object` with React警告:失败的 propType:类型为“array”的无效 prop 需要 React 的“object”
【发布时间】:2016-05-06 02:47:30
【问题描述】:

所以这行代码会抛出类似' Failed propType: Invalid prop of type array expected object.'

为什么会这样?

这是我的 JSON:

"student_records": [
      {
        "program": "PSCI-210",
        "grade": 80
      }
    ]

jsx:

import React, { PropTypes } from 'react';


const StudentRecordPropTypes = {
  studentRecordData: PropTypes.object.isRequired,
};

function StudentRecord(props) {
    const Records = props.studentRecordData;


  return (
    <div>
        {(Records || []).map(student_records => (
              <ul>
                    <li>{student_records.program} : {student_records.grade} </li>
              </ul>
            ))}
    </div>
  );
}
StudentRecord.propTypes = StudentRecordPropTypes;

export default StudentRecord;

它显示正确。经过一番谷歌搜索,我意识到它正在寻找一个数组,但它实际上是一个对象。我的问题是我不知道如何解决它。如何消除此错误?

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

    改变

    const StudentRecordPropTypes = {
      studentRecordData: PropTypes.object.isRequired,
    };
    

    const StudentRecordPropTypes = {
      studentRecordData: PropTypes.array.isRequired,
    };
    

    【讨论】:

    • 好的,谢谢!您可以对返回函数提出任何建议而不将其更改为数组吗?
    • "students_records" 是一个数组,所以它必须是一个数组,为什么你认为它是一个对象?
    • 如果不允许使用数组、对象或任何对象,您如何解决这个问题?
    • 嗨@SBD你解决了吗?我也“禁止使用数组”。废话!
    猜你喜欢
    • 1970-01-01
    • 2016-03-01
    • 2018-01-23
    • 2016-11-07
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多