在安装组件之前,ReactJS和Reflux侦听存储
我有一个疑问,就是我还不能用谷歌搜索出来,但我有一个react组件,我想用componentWillMount()方法使用回流存储更新它的状态 我可以更新存储中的状态,但使用this.trigger更新存储中的状态并没有给我数据的更新状态,这让我感到困惑。如何获取数据的更新状态 下面是我的组件目前的情况在安装组件之前,ReactJS和Reflux侦听存储,reactjs,state,refluxjs,Reactjs,State,Refluxjs,我有一个疑问,就是我还不能用谷歌搜索出来,但我有一个react组件,我想用componentWillMount()方法使用回流存储更新它的状态 我可以更新存储中的状态,但使用this.trigger更新存储中的状态并没有给我数据的更新状态,这让我感到困惑。如何获取数据的更新状态 下面是我的组件目前的情况 var Challenges = React.createClass({ contextTypes: { router: React.PropTypes.fu
var Challenges = React.createClass({
contextTypes: {
router: React.PropTypes.func
},
mixins: [Reflux.connect(ChallengeStore,'challenges')],
getInitialState: function() {
return {
challenges: []
}
}
componentDidMount: function() {
var trackId = this.props.params.trackId; // the url
ChallengeActions.GetChallenges(trackId);
console.log(this.state);
},
render: function () {
return(
<div>
<h1>{ this.state.challenges.title }</h1> <List challenges={ this.state.challenges } />
</div>
);
}
});
本周在计算回流时遇到了这个问题 问题是
回流。connect
仅连接存储区中缺少的getInitialState()
作为:
reflow.connect()
mixin将检查存储中的getInitialState
方法。如果找到,它将设置组件getInitialState
除非您的应用商店的初始状态在其所有侦听器中都是一致的,否则我发现最好只使用reflow.listenTo()
:
var ChallengeStore = Reflux.createStore({
listenables: ChallengeActions,
onGetChallenges: function(url) {
var items = ChallengeService.getChallenges(url);
this.trigger({
challenges: items
});
}
});
var Status = React.createClass({
mixins: [Reflux.listenTo(statusStore,"onStatusChange")],
onStatusChange: function(status) {
this.setState({
currentStatus: status
});
},
render: function() {
// render using `this.state.currentStatus`
}
});