Javascript 触发跟踪器';自动运行功能?

Javascript 触发跟踪器';自动运行功能?,javascript,reactjs,meteor,meteor-tracker,Javascript,Reactjs,Meteor,Meteor Tracker,我有这样一个示例Meteor应用程序: import React from 'react'; import { Meteor } from 'meteor/meteor'; import { render } from 'react-dom'; import { Mongo } from 'meteor/mongo'; Things = new Mongo.Collection('things'); if (Meteor.isClient) { Meteor.startup(() =&g

我有这样一个示例Meteor应用程序:

import React from 'react';
import { Meteor } from 'meteor/meteor';
import { render } from 'react-dom';
import { Mongo } from 'meteor/mongo';

Things = new Mongo.Collection('things');

if (Meteor.isClient) {
  Meteor.startup(() => {
    Tracker.autorun(() => {
      console.log('AUTORUN');
    });
    Meteor.subscribe('things');
    render(<div>Hello world</div>, document.getElementById('app'));
  });
} else if (Meteor.isServer) {
  Meteor.publish('things', function() {
    return Things.find({});
  });
}
从“React”导入React;
从“流星/流星”导入{Meteor};
从'react dom'导入{render};
从“meteor/Mongo”导入{Mongo};
Things=新Mongo.Collection(“Things”);
if(Meteor.isClient){
流星启动(()=>{
Tracker.autorun(()=>{
console.log('AUTORUN');
});
Meteor.subscribe(“事物”);
render(helloworld,document.getElementById('app');
});
}else if(Meteor.isServer){
Meteor.publish('things',function()){
返回物品。查找({});
});
}

我希望在修改我的
Things
集合中的一个文档时,应该启动自动运行功能,但事实并非如此。所以我的问题是:修改订阅的数据后,应该满足什么条件才能启动自动运行功能?

这里有两个错误:

  • Tracker.autorun
    仅检测其包装的函数(作为其参数的函数)中的更改。这里只有一个
    控制台.log
    ,它不是自动运行可以监视的反应源

  • 发布/订阅机制与文档本身之间存在差异。修改文档时,您的订阅不会更改。但是,如果在自动运行中放置集合查询,则查询返回的游标是一个被动源,在修改文档时会发生更改

  • 所以你可以这样做:

    流星启动(()=>{ Meteor.subscribe(“事物”); Tracker.autorun(()=>{
    Things.find();//这里有两个错误:

  • Tracker.autorun
    仅检测其包装的函数(作为其参数的函数)中的更改。这里只有一个
    控制台.log
    ,它不是自动运行可以监视的反应源

  • 发布/订阅机制与文档本身之间存在差异。修改文档时,订阅不会更改。但是,如果在自动运行中放置集合查询,则查询返回的光标是一个反应源,在修改文档时会更改

  • 所以你可以这样做:

    流星启动(()=>{ Meteor.subscribe(“事物”); Tracker.autorun(()=>{
    Things.find();//好的,谢谢-正如我所看到的,
    autorun
    函数只在一些数据实际存在时运行(使用
    fetch
    findOne
    )采取行动?我是否很清楚,这种反应性只有在这种情况下才有可能实现,或者它们是实现这一点的其他方法?任何反应性来源。通常,除了收集游标之外。好的,谢谢-正如我所看到的,
    自动运行
    函数只有在其内部有一些物理数据时才会运行(使用
    fetch
    findOne
    )我是否清楚,这种反应性只有在这种情况下才可能发生,或者它们是实现这一点的其他方法?任何反应性源。通常,除了收集游标之外。