【发布时间】:2016-12-16 07:34:35
【问题描述】:
我正在使用 Meteor 和 React JS。 我通过这段代码得到了“列表”的集合,
Meteor.subscribe('getList', {status:'active'},function(){
self.setState({lists:Lists.find().fetch()});
});
这是发布的代码,
Meteor.publish('getList', function(data){
data.user = this.userId;
return Lists.find(data);
});
所以它正在工作。问题是我有两个组件调用 Meteor.subscribe('getList')。但是状态就不一样了。
所以在其他组件中,我有这段代码,
Meteor.subscribe('getList', {status:'archived'},function(){
self.setState({lists:Lists.find().fetch()});
});
所以这里发生的情况是,如果用户转到 FirstComponent,this.state.lists 是空的(这是正确的)。然后当用户导航到 SecondComponent 时,this.state.lists 会填充数据(这是正确的)。但是当用户返回 FirstComponent 时,this.state.lists 仍然填充了数据(这是错误的)。
就像客户端中的第一个集合(为空)仍然存在。然后添加第二个集合(非空)。我想在重新订阅之前清除客户端中的集合。
顺便说一下,我使用的是流量路由器。
【问题讨论】:
-
你在使用 createContainer 吗?
-
我正在使用 Flowrouter。
-
我不使用 createContainer
-
为什么需要使用createContainer?
标签: javascript reactjs meteor