2017-04-20 3 views
1

Ich lerne über Redux, und ich denke, ich habe ziemlich gut zu verstehen, wie es funktioniert, verstehe ich den Zweck von Anbieter/Shop/Aktionen/Reducers.Wo sollte ich Abonnements in React Redux Meteor.js Mischung

Ich bin verwirrt darüber, wo sollte ich Abonnements in meiner React/Redux/Meteor-Anwendung aufrufen.

Ich habe Beispiele für das Ausführen von API-Aufrufen in Aktionen bei der Verwendung von React/Redux-Apps gesehen.

Nicht sicher, was der beste/gebräuchlichste Ansatz ist, wenn wir Meteor.js in der Mischung haben, sollte ich Abonnements in Aktionen aufrufen und sie an Reduzierungen weiterleiten oder umgekehrt.

Danke

Antwort

3

Da Abonnements ein bisschen anders als eine Anforderung an eine REST-API (typisches Beispiel mit Redux) sind so dass ich nicht Abonnements in Aktionen erstellen. Daher nehme ich an und nehme an, dass Sie react-native-meteor verwenden, gehe ich das Problem auf die gleiche Weise an wie ohne Redux.

import Meteor, { createContainer } from 'react-native-meteor'; 
import { connect } from 'react-redux'; 

class App =() => (
    <View /> 
); 

export default createContainer(() => { 
    const sub = Meteor.subscribe('my-publication'); 
    const data = Meteor.collection('demo').find(); 

    return { 
    ready: sub.ready(), 
    data, 
    }; 
}, connect()(App)); 

Hoffe das ist von Wert für Sie!

+0

Dank @spencercarli – Deano

+0

Wird dies für mehr Conicolated Anwendungen arbeiten? Zum Beispiel, abonnieren Sie den Stamm, aber suchen Sie eine Sammlung in einer untergeordneten Komponente? Ich möchte, dass der Benutzer auf andere zugreift. Sammlungen abhängig von der Oage, auf der sie sich befinden. – xerotolerant

0

Wenn Sie möchten, dass das Abonnement in Ihren Redux-Speicher geladen wird, dann ist meteor-redux-middlewares sehr nützlich. Es gibt Ihnen etwas Zucker für Redux-Aktionen, die Publikationen abonnieren und dann neue Aktionen versenden, wenn sich die Publikation ändert.

Ich tendiere dazu, eine Container-Komponente zu erstellen, die darauf achtet, ob alle erforderlichen Daten im Speicher verfügbar sind, und dann eine der Subskriptionsaktionen aufruft, falls dies nicht der Fall ist.

Verwandte Themen