首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在类方法中使用React.js静态

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

Stack Overflow用户
提问于 2015-02-26 01:04:15
回答 3查看 14.5K关注 0票数 16

我有以下窗口小部件类:

代码语言:javascript
复制
var Widget = React.createClass({
    statics: {title: "a title"},
    ...
});

有没有办法在类的方法中访问静态的标题(使用this)?例如:

代码语言:javascript
复制
render: function() {
    return <div>{this.title}</div>;
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-13 02:54:10

您可以从this.constructor的组件中访问静态

因此,在这种情况下,它将是:

代码语言:javascript
复制
this.constructor.title
票数 19
EN

Stack Overflow用户

发布于 2015-02-26 06:25:21

直接的答案是:

代码语言:javascript
复制
React.createClass({
    title: 'a title',
    render: function() {
        return <div>{this.title}</div>;
    }
});

或者:

代码语言:javascript
复制
React.createClass({
    componentWillMount: function(){
        this.title = 'a title';
    },
    render: function() {
        return <div>{this.title}</div>;
    }
});

但说真的..。为什么不直接使用变量呢?

代码语言:javascript
复制
var TITLE = 'a title';

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

Stack Overflow用户

发布于 2015-02-26 03:31:34

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

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

有关statics和props的更多信息,请访问React的文档。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28725125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档