Из docs, я написал свой контейнер, как такПодписки с реагирующим-метеором данные
export default InventoryItemsList = createContainer(() => {
const itemsCollection = Meteor.subscribe('allInventoryItems');
const loading = !itemsCollection.ready();
return {
loading,
items: !loading ? InventoryItems.find().fetch() : []
};
}, class InventoryItemsListComponent extends Component {
render() {
let items = this.props.items;
/* some render logic */
return /*... react component template ...*/ ;
}
});
Проблема, которую я вижу, что
- Функция контейнера выполняется много раз, таким образом, вызывая
Meteor.subscribe
больше чем единожды; это хорошо? Будет ли Метеор просто игнорировать последующие подписки? - Согласно this tutorial, подписка должна быть остановлена, но документы не упоминают об этом вообще. Это не позаботится об этом, не так ли?
Каков рекомендуемый способ остановки (то есть отказаться от подписки) или решить 2 проблемы, которые я вижу с этой точки?
Действительно ли TrackerRact лучше? (да, я знаю, что это упрямый, но, конечно, здесь есть какая-то форма конвенции с метеорными реакциями!)
«подписка должна прекратиться». Ну, мне кажется, что это анти-шаблон, как описано в документах Meteor. Я не уверен, что это на самом деле останавливается волшебно. Что вы подразумеваете под «использованием конкретных реакций React»? Не могли бы Вы уточнить? –
То, что я подразумеваю под конкретными реализациями React, - это методы и свойства, которые являются родными для React. Например, лучше использовать переменные состояния, чем использовать переменные сеанса. Реакция была специально разработана с использованием состояний, поэтому она всегда будет работать лучше для вашего приложения, используя их вместо переменных сеанса или реактивных переменных. –
То же самое с контейнером для подписки. Не цитируйте меня на этом, но я считаю, что компонент контейнера был разработан MDG для реактивности и простой способ подписаться на данные в ваших компонентах на Meteor. Поэтому всегда лучше использовать это, чем Tracker. Даже не уверен, как вы получите трекер для работы в этом случае с React. –