javascript - 与 Redux 反应:propType 属性错误
问题描述
我是 React 世界的新手。我有一个培训 React 和 Redux 的课程。就像昨天一样,我在参加在线培训时遇到了错误尽管,我浏览了作者课程并从屏幕上复制了代码,但我收到了错误:
警告:失败的 propType:courses
未在 中指定所需的道具CoursesPage
。检查Connect(CoursesPage)
.
我已将我的代码上传到 github:https ://github.com/tarcisiocorte/reactredux/blob/master/src/components/course/CoursesPage.js
再次......我会很感激一些帮助。
import React, {PropTypes} from "react";
import {connect} from 'react-redux';
import * as courseActions from '../../actions/courseActions';
class CoursesPage extends React.Component {
constructor(props, context){
super(props, context);
this.state = {
course:{title: ""}
};
this.onTitleChange = this.onTitleChange.bind(this);
this.onClickSave = this.onClickSave.bind(this);
}
onTitleChange(event){
const course = this.state.course;
course.title = event.target.value;
this.setState({course: course});
}
courseRow(course, index){
return <div key={index}>{course.title}</div>;
}
onClickSave() {
this.props.dispatch(courseActions.createCourse(this.state.course));
}
render() {
return (
<div>
<h1>Courses</h1>
{this.props.courses.map(this.courseRow)}
<h1>Add Courses</h1>
<input
type="text"
onChange={this.onTitleChange}
value={this.state.course.title} />
<input
type="submit"
value="Save"
onClick={this.onClickSave} />
</div>
);
}
}
CoursesPage.propTypes = {
dispatch: PropTypes.func.isRequired,
courses: PropTypes.array.isRequired
};
function mapStateToProps(state, ownProps) {
return{
courses: state.courses
};
}
export default connect(mapStateToProps)(CoursesPage);
解决方案
在https://github.com/tarcisiocorte/reactredux/blob/master/src/index.js#L11
您需要为课程指定默认值。
您已指定您的courses
道具是必需的:
courses: PropTypes.array.isRequired
所以你需要从 redux 存储中传入一些东西,从外观courses
上看,你的 redux 存储中的属性是undefined
. (在此处设置断点以检查实际情况)
你可以确保你的 redux 商店总是为你返回一些东西,courses
或者你可以删除isRequired
约束:
CoursesPage.propTypes = {
dispatch: PropTypes.func.isRequired,
courses: PropTypes.array
};
推荐阅读
- excel - VBA to Auto 从手动选择的起始位置选择一个范围
- python - 如何使用请求库来抓取已抓取的链接列表
- fpga - 如何将未使用的封装引脚连接到 Spartan 3E FPGA 上的 VCC?
- reactjs - 何时使用 useImperativeHandle、useLayoutEffect 和 useDebugValue
- docker - 如何通过 docker 从领事值设置容器参数?
- r - 返回与模糊匹配匹配的单词向量
- ios - 如何在 3D 模型的折叠中打开(显示)深度阴影?
- javascript - 调用openTextDocument时如何禁用切换到资源管理器活动栏?代码
- html - 如何创建html模板并在JS中使用
- python - pandas execute operations on conditions - different ways and best practice?