Reactjs 在Meteor+中进行反应性连接;反应
已经为此奋斗了很长时间;使用我的Meteor+ReactJS应用程序,我希望在MainCollection和SubCollection之间有一个反应式连接。我需要的可能正是这份出版物。但是,当更新子集合时,这不是反应 有人知道如何使用meteor+react进行反应式服务器端连接吗 服务器代码Reactjs 在Meteor+中进行反应性连接;反应,reactjs,meteor,meteor-react,Reactjs,Meteor,Meteor React,已经为此奋斗了很长时间;使用我的Meteor+ReactJS应用程序,我希望在MainCollection和SubCollection之间有一个反应式连接。我需要的可能正是这份出版物。但是,当更新子集合时,这不是反应 有人知道如何使用meteor+react进行反应式服务器端连接吗 服务器代码 import { publishComposite } from 'meteor/reywood:publish-composite'; Meteor.MainCollection('maincollec
import { publishComposite } from 'meteor/reywood:publish-composite';
Meteor.MainCollection('maincollection.pub.all', {
find: function () {
return MainCollection.find();
},
children: [
{
find: function (doc) {
return SubCollection.find(
{ mainCollectionId: doc._id },
{
sort: { createdAt: -1 }, limit: 1,
fields: {
completedAt: 1,
mainCollectionId: 1,
}
})
}
}
]
});
客户端容器
export default createContainer(() => {
let mainCollectionSub = Meteor.subscribe('maincollection.pub.all');
options = {
transform: function (doc) {
doc.subcollection = SubCollection.findOne({
mainCollectionId: doc._id }, ).fetch();
return doc;
}
}
var maincollection = MainCollection.find({}, options).fetch();
return {
maincollection: MainCollection.find({}, options).fetch(),
}
}, MainCollectionView);
在您的示例中,
SubCollection.findOne()
在transform
处理程序中使用之前不是被动的,而不是在createContainer
的第一个参数中使用。试试这个:
export default createContainer(() => {
let mainCollectionSub = Meteor.subscribe('maincollection.pub.all');
options = {
transform: function (doc) {
doc.getSubCollection = function () {
return SubCollection.findOne({
mainCollectionId: this._id,
});
};
return doc;
}
}
return {
maincollection: MainCollection.find({}, options).fetch(),
subcollections: SubCollection.find().fetch(),
};
}, MainCollectionView);
然后可以调用doc.getSubCollection()
,它是相关子集合的反应式数据源