1. 程式人生 > >undefined is not an object (evaluating '_react3.default.PropTypes.bool')

undefined is not an object (evaluating '_react3.default.PropTypes.bool')

在學習React Native的過程中,也就是學習生命週期defaultProps()的時候,為defaultProps配置屬性和為屬性申請型別時出現錯誤

  static defaultProps = {
        autoPlay: false,
        maxLoops: 10,
        nameString:'suncuihua',
    };  // 注意這裡有分號

    static propTypes = {

        autoPlay: PropTypes.bool.isRequired,
        maxLoops: PropTypes.number.isRequired,
        posterFrameSrc:PropTypes.string.isRequired,
        videoSrc: PropTypes.string.isRequired,
        nameString: PropTypes.string.isRequired,

    };  // 注意這裡有分號

報錯:


解決辦法:

需要我們安裝軟體包prop-types 安裝方法為:

npm install prop-types --save      //安裝prop-types


加入  import { PropTypes} from 'prop-types';


註釋:從React15.5起,React.PropTypes被移入到單獨的package中。react提供了一個package(prop-types)去檢查props的型別。首先需要將prop-types引用到檔案中。 


引入方法:
static propTypes = {
        autoPlay: PropTypes.bool.isRequired,
        maxLoops: PropTypes.number.isRequired,
        posterFrameSrc:PropTypes.string.isRequired,
        videoSrc: PropTypes.string.isRequired,
        nameString: PropTypes.string.isRequired,
    };  // 注意這裡有分號


完成之後可能會報錯,不報錯就不用管了:





解決方法:
安裝 npm-check-updates 這個包:
npm i -g npm-check-updates


在專案目錄下

rm -rf node_modules
ncu -u
npm install
此方法可以解決很多莫名其妙的 node 包依賴問題