當測試反應過來的生命週期,我發現了一個很奇怪,但困惑的問題:反應的生命週期:ReactDOM.render之前調用getDefaultProps
var TestLifeCycle = React.createClass({
getInitialState : function(){
console.log('2');
},
getDefaultProps : function(){
console.log('1');
},
render : function(){
return null;
}
});
ReactDOM.render(<TestLifeCycle test="hello world!"/>, document.body);
結果是:
1
Warning: render(): Rendering components directly into document.body is discouraged, since its children are often manipulated by third-party scripts and browser extensions. This may lead to subtle reconciliation issues.
2
講究警告: getDefaultProps
將在反應生命週期的最初階段進行調用。在我的理解,正確的控制檯日誌順序是:
warning
1
2
,但在Chrome瀏覽器是:
1
warning
2
是否getDefaultProps
甚至比以前ReactDOM.render
叫?
是,getInitialState和getDefaultProps被稱爲前呈現。我的觀點是順序:注意警告位置。我認爲是[警告 - > 1 - > 2]。但控制檯是[1 - >警告 - > 2]。如何理解命令?順便說一下:document.body不會被反應提示。 – pingfengafei