方法一:在constructor中初始化state
constructor中初始化state
當一個class組件創建之后,constructor會首先被調用,所以在construcot中可以來初始化所有值,包括state。class實例在內存中已經被創建,所以可以使用this來為state賦值。
PS:
1、在constructor中可以不使用this.setState來為state直接賦值,除此之外其他位置都不能這樣做;
2、在constructor中不要忘記使用super(props)來調用父類的constructor。默認的constructor(當創建一個class時,如果我們沒有顯式的聲明constructor,JS會默認提供一個)會自動調用super,將將所有的參數傳入。
方法二:直接在Class中定義:
直接在Class中定義
PS:
1、沒有定義constructor
2、state屬性是直接引用的,并不是通過this.state來引用的
3、state的作用域是在Class內部,并不是一個方法的內部
4、仍然可以使用this.props和this.context
5、state是class的實例屬性,并不是靜態屬性,不需要添加static關鍵字(就像為static propTypes {...})
兩種初始化方法習慣哪種就使用哪種。
————————————————
版權聲明:本文為CSDN博主「多拉斯基」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/duola8789/article/details/90142891