compnonentDidMount上的React native setState不起作用

时间:2016-04-11 03:27:32

标签: javascript react-native flux

我正在使用close()并在React Native应用中的顶级组件中的flux上尝试setState。在componentDidMount中,constructor似乎将状态设置得很好。但由于某些原因,this.state = MainStore.getData();未在我的this.setState(data);中设置状态。这是我的顶级组件的代码和我的助焊模式的商店。

组件:

componentDidMount

商店:

constructor(props) {
  super(props);
  this.state = MainStore.getData();
}

componentDidMount() {
  MainStore.addChangeListener(this._onChange);
  var data = MainStore.getUpdatedData();
  console.log('data from store: ',data)
  this.setState(data);
  console.log('state: ',this.state)
}

我只是想让流程正常工作,所以我正在使用测试对象。在我的组件中,第一个控制台日志记录var kidsBankData = { test:null }; var kidsData = assign({}, EventEmitter.prototype, { getData: function() { return kidsBankData; }, getUpdatedData: function(){ newObj = { test:'test' } return newObj; }, emitChange: function() { this.emit(CHANGE_EVENT); }, addChangeListener: function(callback) { this.on(CHANGE_EVENT, callback); }, removeChangeListener: function(callback) { this.removeListener(CHANGE_EVENT, callback); } }); 的控制台日志是正确的控制台日志记录var data = MainStore.getUpdatedData();但是第二个日志显示状态仍为test:'test',您可以看到它最初是什么从商店test:null返回。

那么constructor为什么不更新状态呢?没有控制台错误,它只是没有设置状态。

0 个答案:

没有答案