undefined is not an object (evaluating '_react3.default.PropTypes.bool')
阿新 • • 發佈:2019-02-10
在學習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 包依賴問題