0

FlowRouterから反応コンポーネントに小道具を渡すにはどうすればよいですか。それは可能ですか?ドキュメントはとても素晴らしいです。

私はこのようなことをしています:

FlowRouter.route('/dashboard', {
  name: 'dashboard',
  action(){
    var x = Projects.find().fetch(); // this not working
    console.log(x); // x is []. Why?
    ReactLayout.render(App, {
      nav: <Nav />,
    content: <Profile data={x}/>
    });
  }
});

私のアプリでは言いたいのですthis.props.dataが、配列は空です。ロジックを反応コンポーネントに入れる必要があります。それは正しい方法ですか?ないことを願っています。

4

1 に答える 1

0

サブスクリプションが必要だと思います...こちらのドキュメントを参照してください https://github.com/kadirahq/flow-router#subscription-management

FlowRouter.route('/dashboard', {
  name: 'dashboard',
  subscriptions(){
      this.register('myProjects', Meteor.subscribe('projects'));
  },
  action(){
    ReactLayout.render(App, {
      nav: <Nav />,
      content: <Profile data={myProjects}/>
    });
  }
});

しかし、さらに検討した結果、React コンポーネントで流星データを取得することを実際に推奨しています...こちらのドキュメントを参照してください。

https://kadira.io/academy/meteor-routing-guide/content/subscriptions-and-data-management/with-react

  Profile = React.createClass({
     mixins: [ReactMeteorData],
     getMeteorData() {
       var data = {};
       var handle = Meteor.subscribe('projects');
       if(handle.ready()) {
         data.projects = Projects.find({});
       }
       return data;
     },    
  });

サンプル プロジェクト: https://github.com/aaronksaunders/meteor-react-demo2

于 2016-01-04T14:54:43.080 に答える