控制台日志工作,但返回在Meteor中不工作

控制台日志工作,但返回在Meteor中不工作,meteor,return,react-hooks,console.log,Meteor,Return,React Hooks,Console.log,我正在使用React钩子,并试图将一个非常简单的方法从一个文件导出到我的组件文件中 我有一个名为get.js的文件,其中有以下代码 import { Tracker } from 'meteor/tracker' import { Tasks } from '../../tasks'; export default getTask = () => { Tracker.autorun(function() { Meteor.subscribe('taskList', funct

我正在使用React钩子,并试图将一个非常简单的方法从一个文件导出到我的组件文件中

我有一个名为
get.js
的文件,其中有以下代码

import { Tracker } from 'meteor/tracker'
import { Tasks } from '../../tasks';

export default getTask = () => {
  Tracker.autorun(function() {
    Meteor.subscribe('taskList', function() {
      return Tasks.find({something: false}).fetch()
    })
  }
}
在另一个文件中,我导入
getTask
方法并将其放入
useffect
函数中

import React, { useState, useEffect } from "react";
import getTask from '../api/tasks/methods/get'

export default Tasks = () => {  
  const [data, setData] = useState({});
  useEffect(() => {
    getTask()
  })
  return (
    <div>
     ...
    </div>
  )
}
它实际上注销了我想要的数据数组。但如果我这样做了

return Tasks.find({something: false}).fetch()

我没有定义。如何使数据在组件文件中至少处于设置状态?

以下代码不是Meteor中订阅的工作方式:

Tracker.autorun(function() {
  Meteor.subscribe('taskList', function() {
    return Tasks.find({something: false}).fetch()
  })
}
准备就绪时切换状态的订阅。另外,您似乎试图在回调中返回数据

因此,为了正确执行此操作,您可以将方法
getTask
转换为无状态,并全局订阅
taskList

import { Tasks } from '../../tasks';

Meteor.startup(() => {
  Meteor.subscribe('taskList')
})

export default getTask = () => Tasks.find({ something: false }).fetch()
请注意,这根本不是反应性的,Meteor使用
with Tracker
,为react提供了跟踪器集成:

import { Tasks } from '../../tasks';

Meteor.startup(() => {
  Meteor.subscribe('taskList')
})

export default getTask = () => Tasks.find({ something: false }).fetch()