2017-04-20 41 views
1

我正在學習Redux,並且我認爲我對它的工作原理有很好的理解,我理解提供者/商店/操作/縮減器的用途。我應該在React Redux Meteor.js混合物中打電話訂閱

我很困惑我在哪裏應該在我的React/Redux/Meteor應用程序中調用訂閱。

我在使用React/Redux應用程序時看到了在動作中執行API調用的示例。

不確定什麼是最好的/常用的方法,當我們有Meteor.js在混合中,我應該在動作中調用訂閱並將它們傳遞給reducer,反之亦然。

謝謝

回答

3

由於訂閱是不是一個REST API(與終極版典型的例子)的請求有點不同的,所以我不創造行動訂閱。因此,假設您使用的是react-native-meteor,我將以與沒有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)); 

希望對你有一定的價值!

+0

謝謝@spencercarli – Deano

+0

這將工作更多conolicated應用程序?例如,訂閱根目錄但在子組件中搜索集合?我希望用戶訪問不同的。收藏取決於他們在哪裏。 – xerotolerant

0

如果你想訂閱被加載到你的Redux商店,那麼meteor-redux-middlewares是超級有用的。它爲您提供了一些用於製作訂閱出版物的Redux操作的糖,然後在出版物發生更改時派發新的操作。

我傾向於創建一個容器組件,它查看是否所有需要的數據都在商店中可用,然後調用其中一個訂閱動作(如果不存在)。

相關問題