Ответ 1
Вы можете получить доступ к статике из компонента из this.constructor
:
поэтому в этом случае это будет:
this.constructor.title
У меня есть следующий класс виджетов:
var Widget = React.createClass({
statics: {title: "a title"},
...
});
Есть ли способ доступа к заголовку static внутри методов класса (используя this
)? Например:
render: function() {
return <div>{this.title}</div>;
}
Вы можете получить доступ к статике из компонента из this.constructor
:
поэтому в этом случае это будет:
this.constructor.title
Прямой ответ:
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>;
}
});
Объект класса statics
класса React - это способ определения статических методов (т.е. методов, которым не нужен какой-либо контекст для запуска). При этом не имеет смысла называть статический метод из this
.
Похоже, вы ищете "статическое" свойство (т.е. не изменяемое). Итак, вы должны использовать его как this.props.title
на render()
. Чтобы установить значение заголовка, вы должны сделать <Widget title='a title'/>
. Стоит отметить, что вы можете установить свойства по умолчанию, указав метод getDefaultProps
.
Подробнее о statics и о реквизитах на React doc.