2016-07-21 2 views
1

Я использую Meteor 1.3.5 и React 15.1.0 и пытаюсь понять правильный способ загрузки и подписки на данные от MongoDB.Как загрузить данные с помощью Meteor и React?

Прямо сейчас я делаю это в 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); 
+0

Не могли бы вы подробнее рассказать о том, какая у вас проблема? createContainer должен сделать данные доступными для вашего UserComponent, как только данные будут готовы. Вы публиковали данные пользователя на сервере? – fmilani

ответ

0

Избегайте использование РЕАКТА state для управления данными с Meteor. Вместо этого создайте функциональные компоненты без состояния, которые используют только props. Читайте эти:

Это делает ваш компонент UI легко многоразовые, независимо от того, как вы хотите laod данные.

Чтобы понять, как загрузить (реактивные) данные, полезно понять концепцию/разницу между presentational and container components.

Следующий шаг - создать компоненты контейнера, используя технику по вашему выбору, которая обертывает/отображает компонент пользовательского интерфейса. На данный момент фактический подход к метеорологу - createContainer. Существуют также другие варианты, такие как Mantra (некоторые говорят лучше, но сложнее).

Смежные вопросы