0
沒有特別的邀請,我使用了React文檔here,旨在發揮defaultProps的想法。我有TypeError,我無法理解!使用defaultProptypes和propTypes進行反應檢查,使用undefined prop
import React, {PropTypes} from 'react';
import ReactDOM from 'react-dom';
class Greeting extends React.Component {
render() {
return (
<h1>Hello, {this.props.name}</h1>
);
}
}
Greeting.defaultProps = {
name: 'Stranger'
};
Greeting.propTypes = {
name: PropTypes.string,
};
ReactDOM.render(<Greeting/>, document.getElementById('root'));
結果:
Uncaught TypeError: Cannot read property 'string' of undefined
指着(以源):
name: _react.PropTypes.string
正如你在文檔閱讀:
的propTypes類型檢查發生defaultProps都解決了之後,那麼類型檢查也將適用於defaultProps。
如果我刪除:
Greeting.propTypes = {
name: PropTypes.string, //.isRequired
};
不會有任何類型錯誤!
請問,如果我沒有明確提供一個具有默認值的道具(這就是爲什麼存在默認值),我該如何理解這一點,並且同時擁有propTypes和defaultProps而沒有得到TypeError?
感謝。我導入它,但是作爲「導入反應」,「反應」中的{PropTypes};「 –
和有趣的是,我正在練習的視頻教程沒有更新,只有你的答案回憶我更新,沒有更多的地方,我從進口! –