使用propTypes验证道具会出现以下错误:
TypeError:无法读取未定义的属性“字符串”。 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
}
发布于 2017-10-14 19:26:50
您需要安装prop-types
包,然后添加导入语句
import PropTypes from prop-types;
在你们班的第一名。
编辑:正如评论中提到的,这只适用于Reactive15.5及以上版本。
发布于 2018-11-14 20:30:56
如前所述,您需要添加支持类型包,然后在Proptype之前删除React。下列措施应能发挥作用:
Projects.propTypes = {
projects: PropTypes.string,
onDelete: PropTypes.func
}
https://stackoverflow.com/questions/46748441
复制相似问题