在类方法中使用React.js静态

时间:2015-02-25 17:04:15

标签: javascript reactjs

我有以下小部件类:

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

有没有办法在类' es方法(使用this)中访问标题static?例如:

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

3 个答案:

答案 0 :(得分:18)

您可以从this.constructor

访问组件中的静态内容

所以在这种情况下它将是:

this.constructor.title

答案 1 :(得分:8)

直接回答:

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>;
    }
});

答案 2 :(得分:6)

React类的statics对象是一种定义静态方法的方法(即,不需要运行任何上下文的方法)。话虽如此,从this调用静态方法是没有意义的。

看起来你正在寻找一个&#34;静态&#34;财产(即不可变)。因此,您应该像this.props.title上的render()一样使用它。要设置标题的值,您应该<Widget title='a title'/>。值得一提的是,您可以通过定义getDefaultProps方法来设置默认属性。

有关React's doc的staticsprops的更多信息。