Javascript 如何在flow router中停止订阅
我正在尝试根据路由上的参数加载不同的第三方数据。路由没有改变,只是发送给它的参数 我需要停止正在拉入数据的订阅,清除数据,然后发送一个新的api请求来填充订阅 我正在将react meteor与FlowRouter一起使用(效果非常好!) --view.jsx--Javascript 如何在flow router中停止订阅,javascript,meteor,reactjs,Javascript,Meteor,Reactjs,我正在尝试根据路由上的参数加载不同的第三方数据。路由没有改变,只是发送给它的参数 我需要停止正在拉入数据的订阅,清除数据,然后发送一个新的api请求来填充订阅 我正在将react meteor与FlowRouter一起使用(效果非常好!) --view.jsx-- View=ReactMeteor.createClass({ getMeteorState:函数(){ 返回{ feed:feed.find().fetch() } }, render:function(){ 返回( {this.st
View=ReactMeteor.createClass({
getMeteorState:函数(){
返回{
feed:feed.find().fetch()
}
},
render:function(){
返回(
{this.state.feed.map(函数(post,i){
返回
})}
)
}
})
--menu-list-item.jsx--
MenuListItem=ReactMeteor.createClass({
stopFeedSubscription:function(){
FlowRouter.stop('feedSub')
Feed.remove({})
},
render:function(){
var route=“///view/”+this.props.data.\u id
返回(
)
}
})
单击菜单项时,我希望停止该订阅的任何传入数据,并删除其中的所有内容。当重新呈现/view/:id时,会发生对第三方api的新调用,它会获取新数据
所有这些都有效,但如果单击菜单项时数据仍在输入,它将显示在新路由中,该路由应显示不同的数据。Flow Router无法停止订阅。我们可能也没有。如果需要类似的内容,请尝试在React组件中管理订阅 也许我们可以用。不管怎样,我不确定那是你需要的 在路由器级别也有办法做到这一点。 尝试通过获取参数在路由器中定义订阅。因此,当你需要停止它时,将你的应用移动到另一条路径。然后,您以前的订阅将自动停止
默认情况下,只有在当前路由上定义的订阅处于活动状态。更改路线时,以前的路线将被停用。我将签出SubManager。不管怎样,谢谢你的澄清。谢谢——FlowRouter的核心观点似乎是,路由的扩散并没有什么大不了的。
View = ReactMeteor.createClass({
getMeteorState: function(){
return {
feed: Feed.find().fetch()
}
},
render: function(){
return (
{this.state.feed.map(function(post, i){
return <ViewPost data={post} key={i} />
})}
)
}
})
MenuListItem = ReactMeteor.createClass({
stopFeedSubscription: function(){
FlowRouter.stop('feedSub')
Feed.remove({})
},
render: function(){
var route = "//view/"+this.props.data._id
return (
<li key={this.props.data._id} className="collection-item" data-post={this.props.data.name}>
<a href="#" data-route={route} className="btn-post-list" onClick={this.stopFeedSubscription}>{this.props.data.name}</a>
</li>
)
}
})