当我指定输出的投影(字段)时,Tracker.autorun在react的componentDidMount内部不起作用。但是当我在mongo查询上没有任何投影时,同样的效果。
这有效:
Meteor.subscribe('quotes');
this.quotesTracker = Tracker.autorun(() => {
const quotes = Quotes.find(
{instrument_token: 12374274},
{
sort: {timestamp: 1},
limit: 5000
}
).fetch();
这不起作用
Meteor.subscribe('quotes');
this.quotesTracker =Tracker.autorun(() => {
const quotes = Quotes.find(
{instrument_token: 12374274},
{
fields: {
last_price: 1,
timestamp: 1,
},
sort: {timestamp: 1},
limit: 5000
}
).fetch();
我在这里想念什么?
答案 0 :(得分:0)
我认为Meteor的跟踪器不能与ReactJS配合使用,因为它们的重新渲染机制不同。
您可能要使用此软件包。
https://github.com/meteor/react-packages/tree/devel/packages/react-meteor-data
您可以像这样使用它。
fun f( (func: () -> Any?)? )
import { Meteor } from 'meteor/meteor';
import { mount } from 'react-mounter';
import { withTracker } from 'meteor/react-meteor-data';
import { IndexPage } from "./index-page";
FlowRouter.route('/', {
action: () => {
mount(IndexPageContainer, {});
}
});
export const IndexPageContainer = withTracker(() => {
Meteor.subscribe('whatever');
return {
Meteor: {
collection: {
whatever: Whatever.find().fetch()
},
user: Meteor.user(),
userId: Meteor.userId(),
status: Meteor.status(),
loggingIn: Meteor.loggingIn()
}
};
})(IndexPage);
是您的实际组成部分。
然后您可以通过IndexPage