我有一个组件定义这样阵营母语:Access组件状态的静态函数
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
内绕过这个错误,但我希望有一个更好的方式来rosolve这个问题
你可以肯定,世界上只有成分'A'的单个实例?如果是,那么将'this'分配给一个静态变量似乎是合理的。如果不是,那么你需要重新思考这个问题。 –
我不确定静态函数是否需要“绑定”来保持上下文。你可以试一试 – jose920405
静态函数永远不会访问你的非静态函数可以访问的'this'。考虑非静态方法,因为每个实例都有它,并且考虑类的静态方法。 –