流星反应渲染订阅

时间:2018-01-07 21:10:22

标签: reactjs meteor

我如何从订阅中创建PostList类组件渲染,我真的没有得到withtracker函数,我用Google搜索,我找到了不同的版本,但我无法弄清楚它是否正常工作,我做错了什么,我应该怎么做它?我确实重新记录了文档,但它没有多大帮助,请解释一下。

react-meteor-data package

this is my mongo db.posts.find()
{ " _id " : ".." , " data " :{ " title " : " s " , " description " : "a" }, " userid " : "..." , " createdat ":131231}

my publish Meteor.publish("postlist",function(){
return Posts.find({});
})

my react component 
export default class PostList extends React.Component{
    render(){
        return{

        }
    }
}

withTracker((props) => {
    const handle = Meteor.subscribe('postlist');

    return {
        loading: !handle.ready(),
        posts: Posts.find().fetch()
    }
}, PostList)

1 个答案:

答案 0 :(得分:1)

您需要从withTracker导出新创建的组件,而不是PostList本身。

同样withTracker是一个HOC,它返回一个你需要组件包装的函数。

class PostList extends React.Component {
    render () {
        return {
            <div>Some content</div>
        }
    }
}

export default withTracker((props) => {
    const handle = Meteor.subscribe('postlist');

    return {
        loading: !handle.ready(),
        posts: Posts.find().fetch()
    }
})(PostList)