假設我有一個React JS組件,並且爲了便於使用,我希望該組件可以訪問將索引映射到文本的數組。如何將一個不可更改的屬性添加到React JS組件?
例如,假設在場景A中,我傳遞組件ID 1
,而在場景B中,我傳遞組件ID 3
。我希望組件以「知道」做什麼用這些ID,所以我希望組件本身有一個像數組以下幾點:
[
0 => 'Text for scenario 0',
1 => 'Text for scenario 1',
2 => 'Text for scenario 2',
]
現在有兩種方式,我個人知道的,將允許這組件訪問該數組。我可以將其定義爲在構造函數中state
的一部分:
constructor() {
this.state = {
// put the array here
}
}
或者,我可以讓它變成一個默認道具:
Component.defaultProps = {
// put the array here
}
那麼這將允許組件訪問來自this.state
或this.props
的陣列。
但是,我不喜歡或者這些選項的,因爲兩者都允許更改數組。如果我把它放在state
中,那麼陣列可以從組件中的(幾乎)任何地方改變,並且如果我把它放在props
中,那麼組件可以作爲道具傳遞替代陣列。
所以:在React JS中,有沒有一種方法可以在組件上定義一個靜態的,不可更改的屬性?
由於每個模塊都有自己的作用域,因此您可以將數組本地放在組件的上面(組件上方)。如果你不出口它將是私人的 – Peter
嘿彼得 - *呃*,我不知道爲什麼我沒有想到這一點。你通過10秒的時間擊敗了實際的答案 - 如果你想發佈這個答案,我會接受它,否則我會接受那個。 – CGriffin