Я использую withTracker
в коллекции списков пользователей. Пользователь имеет возможность изменить порядок списков через пользовательский интерфейс, который обновляет определенный элемент в коллекции с помощью метеорного метода. Это затем вызывает withTracked для запуска с новыми данными, вызывая повторную визуализацию в случае, когда пользовательский интерфейс уже показывает правильное состояние. Можно ли заставить withTracker
не срабатывать при определенных обновлениях? Мне интересно, есть ли простое решение без создания отдельных коллекций для хранения данных заказа
// Server
Meteor.publish('lists', function (userId) {
return Lists.find({ userId: Meteor.userId() });
});
...
Meteor.methods({
"lists.setorder"({ listId, order}) {
return Lists.update(listId, { $set: { order } })
}
})
// Client
...
export default withTracker(props => {
const listsHandle = Meteor.subscribe("lists");
const lists = Lists.find({}).fetch();
return {
ready: listsHandle.ready(),
lists
}
})(ListView)
...
// After the lists are re-ordered in the UI I call this to update the state in the backend:
Meteor.call("lists.setorder", ....