サブスクリプションに問題があります。異なるサブスクリプションには、クライアントで同じコレクションを満たす必要があります。たとえば : Iブックスコレクションと二つの異なる出版物を持っている:異なるサブスクリプションで同じクライアントコレクションを更新する
Meteor.publish(‘books’,() => Books.find({ status: { $ne: 3 } });
- は、図書の配列を返す「booksForReservation」(図書は予約や他のいくつかのデータに基づいてフィルタリングされ) を公開します
問題は、あるルートから別のルートに移動するときにクライアントで発生します。すべてのブックスコレクションが主要コンポーネントに含まれており、必要なときにクライアント上のbooksForReservation
コレクションがその特定の書籍セットでしか更新されません。
私は次のようにクライアントに加入している:
Meteor.subscribe(‘booksForReservation’, reservationsIds);
let books = Books.find({}).fetch();
が、私はまだ表示されたすべての書籍のコレクションを取得しています。クライアント側でBooksコレクションをサーバーで使用されているのと同じクエリでフィルタリングすると、コレクションが更新されます。しかし、それをサーバー上でフィルタリングすることには何の意味もありません。
同じサブスクリプションで同じコレクションを更新するにはどうすればよいですか?
https://stackoverflow.com/questions/44006793/overlapping-mete-publications/44007620#44007620も参照してください – ghybs