Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Meteor-Tracker.autorun在更新时不刷新数据。_Javascript_Reactjs_Meteor_React Dom - Fatal编程技术网

Javascript Meteor-Tracker.autorun在更新时不刷新数据。

Javascript Meteor-Tracker.autorun在更新时不刷新数据。,javascript,reactjs,meteor,react-dom,Javascript,Reactjs,Meteor,React Dom,我为一个短信应用程序编写了一些基本代码: import React from "react"; import ReactDOM from "react-dom"; import {Meteor} from "meteor/meteor"; import {Tracker} from "meteor/tracker" import {Texts} from "./../imports/api/Text"; import App from "./../imports/ui/App" Meteor

我为一个短信应用程序编写了一些基本代码:

import React from "react";
import ReactDOM from "react-dom";
import {Meteor} from "meteor/meteor";
import {Tracker} from "meteor/tracker"

import {Texts} from "./../imports/api/Text";
import App from "./../imports/ui/App"

Meteor.startup(() => {
    Tracker.autorun(() => {
        let texts = Texts.find().fetch();
        console.log(texts)
        ReactDOM.render(<App />, document.getElementById("app"));
    });
});

我的main.js文件或Text.js文件中是否缺少某些内容?我不知道现在该做什么,因为我已经从我的另一个项目中复制并粘贴了它,它在这里似乎不起作用,但在我的旧项目中起作用。我没有解决方案了!!请帮忙

除非您仍然安装了软件包
autopublish
,否则您需要从服务器发布数据并在客户端订阅

要发布,请在服务器上的某个位置执行以下操作:

import { Texts } from "/imports/api/Text";
Meteor.publish('texts', function () {
    return Texts.find();
});
然后,在使用集合之前,您需要在客户端上订阅:

Meteor.startup(() => {
    Meteor.subscribe('texts'); // <--- 
    Tracker.autorun(() => {
        let texts = Texts.find().fetch();
        console.log(texts)
        ReactDOM.render(<App />, document.getElementById("app"));
    });
});
流星启动(()=>{ Meteor.subscribe('text');//{ 让text=text.find().fetch(); 控制台日志(文本)
render(

谢谢你的帮助,但是你能解释一下为什么我的其他代码有效,而不是这一个,因为我只是复制粘贴了它,只是更改了一些名称(相同的包装)。这可能是meteor中的新更新,因为我在创建此新项目之前更新了meteor吗?请在您的
.meteor/packages
文件中检查
自动发布
。可能是其他项目安装了meteor,而此项目没有安装。否则,数据可能已经从其他位置或其他模板中订阅了?当数据为p时发布到客户端后,任何模板都可以使用它,而不仅仅是订阅的模板。我安装了autopublish 1.0.7版,而且我不必在我的其他项目中调用meteor.subscribe/publish。你知道可能阻止数据库返回数据的任何其他内容吗?不知何故,我的代码现在在没有您提供的代码的情况下仍能正常工作给了我,但我没有对它做任何事情……一定是我的问题或其他什么。似乎需要在tracker中调用FETCH来启用反应式收集。不知道为什么,因为sub上的.ready()本身就应该作为一个ReactiveVar这样做。
Meteor.startup(() => {
    Meteor.subscribe('texts'); // <--- 
    Tracker.autorun(() => {
        let texts = Texts.find().fetch();
        console.log(texts)
        ReactDOM.render(<App />, document.getElementById("app"));
    });
});