Да, статические члены работают с ES6 классами в React, но синтаксис отличается от старого API React.createClass().
Объект statics использовался исключительно с React.createClass():
const Component = React.createClass({
statics: {
someMethod: function() {
// реализация
}
}
})
Этот подход больше не рекомендуется для современной разработки на React.
С ES6 классами определяй статические члены прямо внутри класса с помощью ключевого слова static:
class Component extends React.Component {
static propTypes = {
// валидация пропсов
}
static someMethod() {
// реализация
}
}
Это самый понятный и читаемый подход.
Можно также присваивать статические члены вне определения класса:
class Component extends React.Component {
// реализация класса
}
Component.propTypes = { /* ... */ }
Component.someMethod = function() { /* ... */ }
Это работает, но такой подход менее распространён — он отделяет определение статических членов от тела класса.
static внутри ES6 классов — это современный стандартstatics работает только с устаревшим React.createClass()Объект statics совместим с синтаксисом ES6 классов в React и является рекомендуемым способом определения статических членов в современных приложениях.
Новый — ещё не проверен сообществом
Вы