当用户添加到集合中时,流星不会重新渲染

当用户添加到集合中时,流星不会重新渲染

问题描述:

当新用户添加到用户集合中时,虽然我可以在websocket中看到该html,但它不会重新渲染。当用户添加到集合中时,流星不会重新渲染

websocket message

publication.js:

Meteor.publish('users.name.by-game', function(code) { 
    check(code, String); 
    this.autorun(function() { 
    const game = Game.findOne({ code }); 
    return Meteor.users.find(
     { _id: { $in: (game && game.getPlayersId()) || [] } }, 
     { fields: { 'services.gitlab.username': 1 } }, 
    ); 
    }); 
}); 

用户线:

export default createContainer(({ code }) => { 
    const imagesHandle = Meteor.subscribe('images.all'); 
    const usersHandle = Meteor.subscribe('users.name.by-game', code); 
    const gameHandle = Meteor.subscribe('games.get-by-code', code); 
    const loading = !imagesHandle.ready() || !gameHandle.ready() || 
        !usersHandle.ready(); 
    const game = Game.findOne(); 
    return { loading, game }; 
}, GameRouterContainer); 

你不需要this.autorun(function() {发布函数内。

另外,如果问题是关于渲染的话,你粘贴的代码不会让我们帮你。

+0

在出版物中的自动运行需要观察'游戏'的变化,以便我们可以按照重新发布用户。我们知道它是有效的,因为没有它,我们不会收到有关添加到客户端的新用户的消息。我们的问题是,消息确实到达客户端后,它不会重新提交... –

+0

我没有看到您的发布函数返回任何值。 – Vincent

+0

这些出版物的工作 - 客户收到相关数据。问题在于,当新用户添加到游戏中时,UI不会呈现。我们的发布函数确实返回一个值,你可以看到我们在这里使用的包 - https://atmospherejs.com/peerlibrary/reactive-publish –