我有一个像这样定义的组件
export class A extends Component{
constructor(props){
this.state = {
scene:0
}
}
static changeScene(scene){
this.setState({scene:scene})
}
}
我想使用A.changeScene(sceneVal)
从任何地方调用更改场景
改变A中的场景。问题是我无法访问this.setState我收到此错误Unhandled JS Exception: this.setState is not a function.
我确信A组件已经安装。我可以通过在构造函数中的构造函数var self = null;
中定义全局变量self = this
来绕过此错误,但我希望有更好的方法来解决此问题
答案 0 :(得分:1)
原因是,如果您使用static function
,则static
方法无法访问该功能内的this
。您应该避免使用static
功能。 Static
方法无法使用class
访问this
实例上定义的值,属性和方法。
查看此文章:http://odetocode.com/blogs/scott/archive/2015/02/02/static-members-in-es6.aspx