启动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(() => {
    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({});
  });
}

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

吉卜赛人

你在这里有两个错误:

  1. ATracker.autorun只检测它包装的函数内的变化(作为它的参数)。这里你只有一个console.log,它不是自动运行可以观察的反应源。

  2. Pub/Sub 机制和文档本身是有区别的。当您修改文档时,您的订阅不会改变。但是如果你在你的自动运行中放置一个 Collection查询,那么查询返回的游标是一个响应源,当文档被修改时它会改变。

所以你可以这样做:

Meteor.startup(() => {
    Meteor.subscribe('things');

    Tracker.autorun(() => {
        Things.find(); // <= Reactive source
        console.log('AUTORUN');
    });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

自动运行使用Gnome Schedule创建的Cron任务需要什么?

运行Delphi 4程序需要什么

OpenMP运行时需要什么?

运行该程序需要什么硬件?

Websphere Application Server-快速启动需要什么?

可启动的DOS软盘需要什么文件?

clientID需要什么?

在https上运行安全Web套接字需要什么?

运行WPF应用程序需要什么?

通过HTTP Post请求运行shell脚本需要什么?

MongoDB-运行setFeatureCompatibilityVersion需要什么特权?

运行和安装软件中心需要什么?

启动Minecraft启动器之类的外部JAR文件需要什么?

图形着色需要什么?

如果 consteval 需要什么?

需要什么 docker 网络?

C ++ / CLI需要什么?

到底需要什么测试?

解决SecurityException:权限被拒绝:启动Intent。我需要什么许可?

最小的systemd引导在虚拟控制台上启动getty需要什么?

确切地,“保证金:0自动;”需要什么?去工作?

当我可以在main()中编写所有内容时,我需要什么“正常”功能?

有像双向分配这样的东西吗?我在这里需要什么功能?

Solidity v0.6.0。回退功能。他们需要什么?

不能弄清楚这个简单的兴趣功能需要什么类型的签名

我需要什么环境来运行一个vasturiano 3D-Force Graph?

在文件夹/项目上运行chmod,chown命令需要什么权限?

Eclipse使用JSTL需要什么JAR文件,以便最终在GAE / J上运行?

在Windows 8.1 64bit下运行Windows 7或8的VM需要什么?