如何使用 Meteor 和 React 加载数据?
How to load data with Meteor and React?
我正在使用 Meteor 1.3.5 和 React 15.1.0,并试图了解从 MongoDB 加载和订阅数据的正确方法。
现在我正在 createContainer
中使用参数执行此操作,并且在等待数据可用时遇到问题。
我应该使用状态而不是道具,并在 componentWillMount
或 componentWillMount
中加载数据吗?到目前为止,这些对我没有用。我也尝试使用 getMeteorData,但是当组件呈现时它没有做任何事情。
我正在寻找一种可以在新数据到来时更新组件的解决方案。谢谢
import React, {Component, PropTypes} from "react";
import ReactDOM from "react-dom";
import { createContainer } from "meteor/react-meteor-data";
export default class UsersComponent extends Component{
render(){
let users = this.props.users;
console.log(users);
return (
<div>
{
(users)?
(users.map((user, i) => (
<div key={user._id}>
<p>{user.name}</p>
</div>
)))
: null
}
</div>
)
}
}
UsersComponent.propTypes = {
users: PropTypes.array.isRequired,
}
export default createContainer(({ params }) => {
return {
users: Meteor.users.find().fetch(),
};
}, UsersComponent);
避免使用 React 的 state
通过 Meteor 管理数据。相反,创建仅使用 props
的无状态功能组件。阅读这些:
这使您的 UI 组件易于重用,无论您希望如何装载数据。
要了解如何加载(反应式)数据,了解 presentational and container components 之间的 concept/difference 很有用。
下一步是使用您选择的 wraps/renders UI 组件技术创建容器组件。流星指南的createContainer is the de facto approach for now. There are also other options such as Mantra(有人说更好但更复杂)。
我正在使用 Meteor 1.3.5 和 React 15.1.0,并试图了解从 MongoDB 加载和订阅数据的正确方法。
现在我正在 createContainer
中使用参数执行此操作,并且在等待数据可用时遇到问题。
我应该使用状态而不是道具,并在 componentWillMount
或 componentWillMount
中加载数据吗?到目前为止,这些对我没有用。我也尝试使用 getMeteorData,但是当组件呈现时它没有做任何事情。
我正在寻找一种可以在新数据到来时更新组件的解决方案。谢谢
import React, {Component, PropTypes} from "react";
import ReactDOM from "react-dom";
import { createContainer } from "meteor/react-meteor-data";
export default class UsersComponent extends Component{
render(){
let users = this.props.users;
console.log(users);
return (
<div>
{
(users)?
(users.map((user, i) => (
<div key={user._id}>
<p>{user.name}</p>
</div>
)))
: null
}
</div>
)
}
}
UsersComponent.propTypes = {
users: PropTypes.array.isRequired,
}
export default createContainer(({ params }) => {
return {
users: Meteor.users.find().fetch(),
};
}, UsersComponent);
避免使用 React 的 state
通过 Meteor 管理数据。相反,创建仅使用 props
的无状态功能组件。阅读这些:
这使您的 UI 组件易于重用,无论您希望如何装载数据。
要了解如何加载(反应式)数据,了解 presentational and container components 之间的 concept/difference 很有用。
下一步是使用您选择的 wraps/renders UI 组件技术创建容器组件。流星指南的createContainer is the de facto approach for now. There are also other options such as Mantra(有人说更好但更复杂)。