1

私は Meteor 1.3.5 と React 15.1.0 を使用しており、MongoDB からデータをロードしてサブスクライブする正しい方法を理解しようとしています。

現在、私はこれcreateContainerをパラメーターで行っており、データが利用可能になるのを待つのに問題があります。

props の代わりに states を使用し、データをcomponentWillMountorにロードする必要がありますか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);
4

1 に答える 1

0

React を使用stateして Meteor でデータを管理することは避けてください。代わりに、のみを使用するステートレスな機能コンポーネントを作成しますprops。これらを読んでください:

これにより、データの読み込み方法に関係なく、UI コンポーネントを簡単に再利用できます。

(リアクティブ) データをロードする方法を理解するには、プレゼンテーション コンポーネントとコンテナー コンポーネントの概念/違いを理解することが役立ちます。

次のステップは、UI コンポーネントをラップ/レンダリングする任意の手法を使用してコンテナー コンポーネントを作成することです。Meteor guide のcreateContainerは、今のところ事実上のアプローチです。Mantraなどの他のオプションもあります(より良いと言う人もいますが、より複雑です)。

于 2016-07-21T06:20:49.517 に答える