为什么getter无法访问React组件中的状态?

时间:2014-12-12 09:32:09

标签: javascript reactjs

尝试从getter访问组件状态,我注意到this设置为与普通方法不同的上下文,因此this.state不起作用。

见这里: http://jsfiddle.net/tkaby7ks/

为什么这样,我怎样才能从getter访问状态?

1 个答案:

答案 0 :(得分:15)

关键是getter是传递给React.createClass的对象的属性,而不是创建的类的属性:react将其视为值。从反应的角度来看,以下两个代码片段完全相同:

var MyComponent = React.createClass({
    foo: "asdf",
    ...
})

VS

var MyComponent = React.createClass({
    get foo() { return "asdf" },
    ...
})

对于传递给createClass的函数,react会将this变量绑定到组件,但是对于getter,它是不可能的。