Meteor React订阅

时间:2017-09-07 12:03:25

标签: javascript reactjs meteor

使用包“ react-meteor-data ”的替代方法是什么?我正在使用 ES6 来编写反应组件。在react组件中编写 meteor subscription 的最佳方法是什么,以便在服务器端发生任何变化时重新呈现组件。

2 个答案:

答案 0 :(得分:1)

  

在反应中编写流星订阅的最佳方法是什么   组件,以便在任何更改时重新呈现组件   在服务器端。

最好的方法是使用反应流星数据。这个包有什么问题,让你觉得不使用它?

它甚至允许您将React组件与Meteor分离/分离。这真的很棒,因为当你想要在另一个非Meteor项目中编写一些你想要重用的组件时,你就可以自由地去做。

当然,您可以编写自己的订阅容器以进行反应,但是使用此包,您可以获得所需的所有重要内容以及维护和测试。

如果您在设置订阅容器时遇到问题,可以深入研究这些教程:

https://guide.meteor.com/react.html

https://themeteorchef.com/tutorials/using-create-container

答案 1 :(得分:1)

使用react-meteor-data,首先创建一个HOC容器,该容器订阅数据并将其作为道具传递给组件。

容器:

import { createContainer } from 'meteor/react-meteor-data';

export default FooContainer = createContainer(() => {
  // Do all your reactive data access in this method. 
  // Note that this subscription will get cleaned up when your component is unmounted 
  var handle = Meteor.subscribe("todoList", this.props.id);

  return {
    currentUser: Meteor.user(),
    listLoading: ! handle.ready(),
    tasks: Tasks.find({listId: this.props.id}).fetch(),
  };
}, Foo);

组件:

import FooContainer from './FooContainer';

class App extends React.Component {
    render() {
        return (
            <div>
                {this.props.currentUser.name}
            </div>
        )
    }
}

export default FooContainer(App);

查看Higher Order Components的React文档,了解容器的工作原理。