当用户添加到集合中时,流星不会重新渲染
问题描述:
当新用户添加到用户集合中时,虽然我可以在websocket中看到该html,但它不会重新渲染。当用户添加到集合中时,流星不会重新渲染
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() {
发布函数内。
另外,如果问题是关于渲染的话,你粘贴的代码不会让我们帮你。
在出版物中的自动运行需要观察'游戏'的变化,以便我们可以按照重新发布用户。我们知道它是有效的,因为没有它,我们不会收到有关添加到客户端的新用户的消息。我们的问题是,消息确实到达客户端后,它不会重新提交... –
我没有看到您的发布函数返回任何值。 – Vincent
这些出版物的工作 - 客户收到相关数据。问题在于,当新用户添加到游戏中时,UI不会呈现。我们的发布函数确实返回一个值,你可以看到我们在这里使用的包 - https://atmospherejs.com/peerlibrary/reactive-publish –