Метеор и Реакция. Я пытаюсь подписать две коллекции mon go и использовать определенный документ для передачи его компоненту. Если я пытаюсь получить документ в разделе whitTracker (), кажется, что он будет искать его до синхронизации документа и будет возвращаться на неопределенный срок. Но, если я сделаю это в разделе рендеринга, убедившись, что isLoading имеет значение false, он работает. Где находится правильное место для поиска данных из коллекций, на которые я подписан?
Это (создание запроса в разделе withTracker) не работает: laLoca и laLoca1 будут неопределенными.
render() {
if (this.props.isLoading) {
return <LoaderExampleText />;
}
return (<MyMap laLoca={this.props.laLoca} />);
}
}
export default withTracker(() => {
const handles = [
Meteor.subscribe("wells"),
Meteor.subscribe("locaciones"),
Meteor.subscribe("Drylocationlast")
];
const isLoading = handles.some(handle => !handle.ready());
const laLoca1 = Drylocationlast.findOne({ codigo: "dl" });
const laLoca = Locaciones.findOne(laLoca1.dryLocationId);
return {
laLoca:laLoca,
wells: Wells.find().fetch(),
isLoading: isLoading
};
})(WellHome);
Но вот это (сделать запрос в методе рендеринга) работает:
render() {
if (this.props.isLoading) {
return <LoaderExampleText />;
}
const laLoca1 = Drylocationlast.findOne({ codigo: "dl" });
const laLoca = Locaciones.findOne(laLoca1.dryLocationId);
return (<MyMap laLoca={laLoca} />);
}
}
export default withTracker(() => {
const handles = [
Meteor.subscribe("wells"),
Meteor.subscribe("locaciones"),
Meteor.subscribe("Drylocationlast")
];
const isLoading = handles.some(handle => !handle.ready());
return {
wells: Wells.find().fetch(),
isLoading: isLoading
};
})(WellHome);