Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在flow router中停止订阅_Javascript_Meteor_Reactjs - Fatal编程技术网

Javascript 如何在flow router中停止订阅

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

我正在尝试根据路由上的参数加载不同的第三方数据。路由没有改变,只是发送给它的参数

我需要停止正在拉入数据的订阅,清除数据,然后发送一个新的api请求来填充订阅

我正在将react meteor与FlowRouter一起使用(效果非常好!)

--view.jsx--

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>
                )
        }
    })