Javascript 扩展React.Component时未定义React JS:setState
我正在将一些React JS组件重构为ES6样式的类,这些类来自以前使用React.createClass的实现。 在旧的实现中,this.setState按预期工作 但是,在扩展React.Component时,似乎setState方法根本不可用,即使它是作为API的一部分记录的: 是否有其他机制更新组件状态,或者这更可能是我的实现中的一个问题Javascript 扩展React.Component时未定义React JS:setState,javascript,reactjs,Javascript,Reactjs,我正在将一些React JS组件重构为ES6样式的类,这些类来自以前使用React.createClass的实现。 在旧的实现中,this.setState按预期工作 但是,在扩展React.Component时,似乎setState方法根本不可用,即使它是作为API的一部分记录的: 是否有其他机制更新组件状态,或者这更可能是我的实现中的一个问题 function getState() { return {test: TestStore.getTest()} } class MyCompo
function getState() {
return {test: TestStore.getTest()}
}
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.state = getState();
this._onChange = this._onChange.bind(this);
}
componentDidMount() {
TestStore.addChangeListener(this._onChange);
}
_onChange() {
this.setState(getState());
}
render(){
return <div>{this.state.test}</div>
}
}
函数getState(){
返回{test:TestStore.getTest()}
}
类MyComponent扩展了React.Component{
建造师(道具){
超级(道具);
this.state=getState();
this.\u onChange=this.\u onChange.bind(this);
}
componentDidMount(){
addChangeListener(this.\u onChange);
}
_onChange(){
this.setState(getState());
}
render(){
返回{this.state.test}
}
}
我使用的是react js版本0.14.7
编辑:以上截取的事实上是正确的。该问题是由于我这边的一个特定于域的错误造成的您是在构造函数中定义状态还是将状态定义为类属性?请在Flux store中的某些内容更改时发出的回调中发布相关代码partI call this.setState。我已经试过把这个装订好了,似乎并没有什么效果difference@kpimov我在构造函数中定义了state,“但是在扩展React.Component时,setState方法看起来根本不可用”,它是可用的。您发布的代码没有您正在谈论的问题。