是否可以与Tracker函数链接在一起?

时间:2018-08-18 00:39:12

标签: meteor functional-programming higher-order-functions meteor-react

我已经构建了这些“连接”功能,因此可以轻松地从我的React组件访问集合。这是这种情况的一个示例:

import { Meteor } from 'meteor/meteor';
import { withTracker } from 'meteor/react-meteor-data';

export const ReadableConnection = function (subscriptionName, collectionAPI) {
    return withTracker(props => {
        const connection = Meteor.subscribe(subscriptionName);
        const isLoading = connection.ready();

        return {
            ...props,
            isLoading: isLoading,
            collection: collectionAPI.find().fetch()
        }
    });
}

我已经写了这些个人联系:

import { ReadableConnection } from './connection';
import ListAPI from '../api/listapi'

export const ReadableListConnection = ReadableConnection('MeteorListPublication', ListAPI);

用法示例:

import React from 'react';
import { ReadableListConnection } from '../connections/CollectionConnections';

const RenderList = React.createClass({
    render() {
        return (
            <div key="list">
                this.props.collection.map(item => <SingleItem item={item} />
            </div>
        )
    }
});

export default ReadableCertificationsConnection(RenderList);

尽管到目前为止,这些方法在我的项目中都运行良好,但理想情况下,我希望它们是可链接的。我正在尝试一种将这些连接封装在它们自己的闭合中,然后编写连接管理功能的方法。尽管我不确定这是否是解决此特定问题的正确方法。

理想情况下,我可以传递不同的连接,然后传递React组件:

链(     ReadableListConnection,     ReadableSecondListConnection,     ReadableThirdListConnection )(ReactComponent)

然后React组件将能够访问所有集合及其加载状态。

0 个答案:

没有答案