javascript - 与 Redux react : error on propType property

标签 javascript reactjs redux

我是 React 世界的新手。我参加了 React 和 Redux 培训类(class)。 就像昨天一样,我在参加在线培训时遇到错误 尽管如此,我浏览了作者类(class)并从屏幕上复制了代码,但我收到了错误:

警告:失败的 propType:未在 CoursesPage 中指定必需的 courses 属性。检查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

您需要指定类(class)的默认值。

您已指定需要您的 courses 属性:

courses: PropTypes.array.isRequired

因此您需要从 Redux 存储中传递一些内容,并且从外观上看,您的 Redux 存储中的 courses 属性是 未定义。 (设置断点here来检查是否确实如此)

您可以确保您的 redux 存储始终返回您的类(class)的内容,或者您​​可以删除isRequired约束:

CoursesPage.propTypes = {
    dispatch: PropTypes.func.isRequired,
    courses: PropTypes.array
};

关于javascript - 与 Redux react : error on propType property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50264330/

相关文章:

javascript - If 语句永远不会到达 else 分支 - "if (x = y)"

javascript - 将变量从 "browser_action"发送到 "content_scripts"

javascript - 图表不显示 JavaScript

javascript - 网络包 : Uncaught ReferenceError: require is not defined

reactjs - 为什么当我使用 redux 时 axios.get 不起作用?

javascript - React.js——未正确传递组件

javascript - JS : Why Is This Slower? 它不应该测试其他 OR 条件但它确实如此?

javascript - react : clicked link versus direct link

javascript - Redux - 在 React 组件的构造函数中使用 bindActionCreators 有什么缺点吗?

reactjs - 对 Redux createAction 和 dispatch 感到困惑