Vielleicht verpasse ich hier etwas, aber ich bekomme keine Daten von meiner db in meine Komponente.Daten werden nicht durch Komponenten von Meteor ausgesetzt.
Ich benutze reagieren und Meteor (w/Mantra), mit simpleSchema/collection2 auf dem Server. Soweit ich das beurteilen kann, habe ich mein Publish/Subscribe Setup richtig eingerichtet.
Ich habe Dinge mit dem Mantra CLI aufgebaut. (Die durch die Art und Weise ist genial) Heres ist mein Setup:
Komponente: (Client/modules/components/sidebar_hubs.js)
import React from 'react';
const renderIfData = (hubs) => {
if (hubs && hubs.length > 0) {
return hubs.map((hub) => {
return <li key={ hub._id }>{ hub.name }</li>;
});
} else {
return <p>No hubs yet!</p>;
}
};
const SidebarHubs = ({hubs}) => (
<div>
<h1> Hubs </h1>
{hubs.length}
<ul> { renderIfData(hubs) } </ul>
</div>
);
export default SidebarHubs;
Container (Client/modules/Container/sidebar_hubs. js)
import {useDeps, composeAll, composeWithTracker, compose} from 'mantra-core';
import SidebarHubs from '../components/sidebar_hubs.js';
export const composer = ({context}, onData) => {
const {Meteor, Collections} = context();
const subscription = Meteor.subscribe('hubs');
if (subscription.ready()) {
const hubs = Collections.Hubs.find().fetch();
onData(null, { hubs });
}
};
export const depsMapper = (context, actions) => ({
context:() => context
});
export default composeAll(
composeWithTracker(composer),
useDeps(depsMapper)
)(SidebarHubs);
Publikation: (Server/Publikationen/hubs.js)
import {Hubs} from '/lib/collections';
import {Meteor} from 'meteor/meteor';
import {check} from 'meteor/check';
export default function() {
Meteor.publish('hubs', function() {
return Hubs.find();
});
}
Was fehlt mir hier offensichtlich?
Können Sie das Ergebnis näher erläutern? (Wird die Komponente gerendert? Wird sie ohne Daten gerendert? Haben Sie das DDP-Abonnement untersucht, um herauszufinden, ob Daten an den Client gesendet wurden? Haben Sie Daten in MiniMongo selbst?) – MasterAM
Die Antwort wurde einfach nicht veröffentlicht Ich habe meine Komponente direkt und nicht meinen Container für die Komponente importiert. – Justin