Использование статистики React.js внутри методов класса

У меня есть следующий класс виджетов:

var Widget = React.createClass({
    statics: {title: "a title"},
    ...
});

Есть ли способ доступа к заголовку static внутри методов класса (используя this)? Например:

render: function() {
    return <div>{this.title}</div>;
}

Ответы

Ответ 1

Вы можете получить доступ к статике из компонента из this.constructor:

поэтому в этом случае это будет:

this.constructor.title

Ответ 2

Прямой ответ:

React.createClass({
    title: 'a title',
    render: function() {
        return <div>{this.title}</div>;
    }
});

Или:

React.createClass({
    componentWillMount: function(){
        this.title = 'a title';
    },
    render: function() {
        return <div>{this.title}</div>;
    }
});

Но на самом деле... почему бы просто не использовать переменную?

var TITLE = 'a title';

React.createClass({
    render: function() {
        return <div>{TITLE}</div>;
    }
});

Ответ 3

Объект класса statics класса React - это способ определения статических методов (т.е. методов, которым не нужен какой-либо контекст для запуска). При этом не имеет смысла называть статический метод из this.

Похоже, вы ищете "статическое" свойство (т.е. не изменяемое). Итак, вы должны использовать его как this.props.title на render(). Чтобы установить значение заголовка, вы должны сделать <Widget title='a title'/>. Стоит отметить, что вы можете установить свойства по умолчанию, указав метод getDefaultProps.

Подробнее о statics и о реквизитах на React doc.