控制台日志工作,但返回在Meteor中不工作
我正在使用React钩子,并试图将一个非常简单的方法从一个文件导出到我的组件文件中 我有一个名为控制台日志工作,但返回在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
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()