我应该在哪里调用React Redux Meteor.js混合中的订阅

时间:2017-04-20 17:33:00

标签: javascript reactjs meteor redux

我正在学习Redux,我认为我对它的工作方式有很好的理解,我理解了提供者/存储/动作/减速器的用途。

我对在React / Redux / Meteor应用程序中应该在何处调用订阅感到困惑。

我已经看到了在使用React / Redux应用程序时在操作中执行API调用的示例。

当我们在混合中使用Meteor.js时,不确定最佳/常用的方法是什么,我应该在操作中调用订阅并将它们传递给reducer,反之亦然。

谢谢

2 个答案:

答案 0 :(得分:3)

由于订阅与对REST API的请求(使用Redux的典型示例)略有不同,因此我不会在操作中创建订阅。因此,假设您正在使用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));

希望对你有所帮助!

答案 1 :(得分:0)

如果您希望将订阅加载到Redux商店,那么meteor-redux-middlewares非常有用。它为您提供了一些糖,用于制作订阅出版物的Redux操作,然后在发布更改时分发新操作。

我倾向于创建一个容器组件,查看是否所有必需的数据在商店中都可用,然后调用其中一个订阅操作(如果不是)。