React propType无法读取undefined的属性

Niz*_*zai 9 reactjs

使用propTypes验证props会出现以下错误:

TypeError:无法读取未定义的属性"string".

TypeError:无法读取未定义的属性'func'.

有问题的代码位于代码段的底部:

import React from 'react';
import ProjectItem from './ProjectItem';

class Projects extends React.Component {

    deleteProject(title) {
      this.props.onDelete(title);
    }

    render() { 
      let projectItems;

      if (this.props.project) {
        projectItems = this.props.project.map(project => {
            return (
                <ProjectItem key={project.title} project={project} onDelete={this.deleteProject.bind(this)}  />
            )
        });
      }

      return (
        <div className="Projects">
          {projectItems}
        </div>    
      );    
    }

}

Projects.propTypes = {
  projects: React.PropTypes.string,
  onDelete: React.PropTypes.func
}
Run Code Online (Sandbox Code Playgroud)

pal*_*alm 19

您需要安装该prop-types软件包,然后添加import语句

import PropTypes from prop-types;

在你的班级顶部.

PropTypes已从React移动到他们自己的包中prop-types.

编辑:如评论中所述,这仅适用于React版本15.5及更高版本.