我在找redux todomvc codes。 static propTypes
中的static
關鍵字是什麼? 感謝反應:爲什麼static propTypes
UPDATE
不知道爲什麼downvoted?這篇文章太簡單了嗎?歡迎評論。謝謝。我希望我可以刪除這篇文章。
我在找redux todomvc codes。 static propTypes
中的static
關鍵字是什麼? 感謝反應:爲什麼static propTypes
UPDATE
不知道爲什麼downvoted?這篇文章太簡單了嗎?歡迎評論。謝謝。我希望我可以刪除這篇文章。
static
不是上一代Javascript(「ES5」)的一部分,這就是爲什麼您在舊文檔中找不到它的原因。但是,除了Internet Explorer(http://caniuse.com/#search=es6)之外,所有主流瀏覽器現在都支持「ES6」類語法的其餘部分,並且如果使用Babel等轉譯器,則可以在任何瀏覽器中使用它。大多數React用戶已經在使用Babel來傳輸他們的JSX,所以React站點(如Redux TodoMVC)認爲它是理所當然的。您可以在這裏閱讀更多關於static
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static。
對於static propTypes
,propTypes需要在類本身上聲明,而不是在類的實例上聲明。換句話說,如果你使用無狀態的組件:
function Foo() {
this.PropTypes = somePropTypes; // bad
return <div></div>;
}
Foo.PropTypes = somePropTypes; // good
當使用ES6班,Foo.PropTypes = somePropTypes
可等效爲:
class Foo extends React.Component {
static PropTypes = somePropTypes;
}
作爲一個方面說明,在那樣的類定義屬性的能力在任何瀏覽器中都不存在(還沒有):您需要一個像Babel這樣的翻譯插件,並使用transform-class-properties
插件。
propTypes
對組件的實例並不是唯一的。他們也不會更改每個組件。因此,他們成爲班級的靜態成員是有道理的。
「我希望我可以刪除這篇文章。」你不需要。從三個負面投票中得到的分數可以忽略不計,只是因爲三個人不喜歡你的問題,並不意味着其他人不會覺得這個問題有用。任何使用過一段時間的人都至少有一個問題,他們有些尷尬地問(包括我自己),但這個地方的重點是幫助人們學習,甚至是「壞」問題都可以做到這一點。 – machineghost
@machineghost謝謝。實際上,我閱讀了一些javascript文檔。我沒有找到「靜態」屬性。也許我沒有仔細閱讀文件。當然,'靜態'往往是其他語言。 – BAE