如何在React中调试“Uncaught TypeError:无法读取未定义的属性'func'?

时间:2018-04-24 06:35:46

标签: reactjs

已经完成

  1. npm install -save prop-types
  2. 从'prop-types'导入PropTypes;
  3. npm install --save react-router
  4. 从'react-router'导入{路由器,路由,链接};
  5. 我已经完成了所有事情,但我无法做到。

    ContactCreate.class

    import React from 'react';
    import PropTypes from 'prop-types';
    import { Router, Route, Link } from 'react-router';
    
    /*skip*/
    
    ContactCreate.propTypes ={
        onCreate : React.PropTypes.func
    };
    

    的package.json

    enter image description here

    我尝试了其他人为解决方案付出的一切,但结果是一样的。代码似乎没有问题,但我不知道问题是什么。

    Contact.js

    constructor(props) {
        super(props);
        this.state = {
        /*skip*/
        this, handleCreate = this.handleCreate.bind(this);
    }
    
    handleCreate(contact) {
        this.setState({
            contactData: update(this.state.contactData, { $push: [contact] })
        });
    }
    
    /*skip*/
    
    render() {
    /*skip*/
        return (
            <div>
                <h1>Contacts</h1>
                <input
                    name="keyword"
                    placeholder="Search"
                    value={this.state.keyword}
                    onChange={this.handleChange}
                />
                <div>{mapToComponents(this.state.contactData)}</div>
                <ContactDetails
                    isSelected={this.state.selectedKey != -1}
                    contact={this.state.contactData[this.state.selectedKey]}
                />
                <ContactCreate
                    onCreate={this.handleCreate}
                />
            </div>
        );
    }
    

1 个答案:

答案 0 :(得分:0)

PropTypes是从单独的软件包导入的,因此不应该像React.PropTypes.func一样使用,PropTypes.func

import React from 'react';
import PropTypes from 'prop-types';
import { Router, Route, Link } from 'react-router';

...

ContactCreate.propTypes ={
    onCreate : PropTypes.func
};