0

メーターと反応の実験を始めたばかりで、基本的なチュートリアルとオンラインでいくつかのことを行いました。今、独自のアプリを作成しようとしていますが、適切に動作させることができないようです。ここに私が持っているものがあります:

App.jsx:

import React, { Component, PropTypes } from 'react';
import ReactDOM from 'react-dom';
import { Meteor } from 'meteor/meteor';
import { createContainer } from 'meteor/react-meteor-data';

import AccountsUIWrapper from './AccountsUIWrapper.jsx';
import { Customers } from '../api/customers.js';

// App component - represents the whole app
class App extends Component {

  getProfile() {
        if(Meteor.userId()){
            var cx = Meteor.call('customers.getProfile', Meteor.userId());

            if(cx && cx.account){
                console.log('FOUND');
                return (
                    <div>
                        <div>Owner: {cx.owner}</div>
                        <div>Account: {cx.account}</div>
                        <div>Agents: {cx.agents}</div>
                    </div>
                )
            }else{
                console.log('LOADING..');
                return ( <div>Loading</div> );
            }
        }else{
            return (
                <div>Please sign in</div>
            )
        }
  }

  render() {
    return (
      <div className="container">
        <header>
            <AccountsUIWrapper />
            <h1>Customer Portal</h1>
        </header>

        <ul>
            {this.getProfile()}
        </ul>
      </div>
    );
  }
}


App.propTypes = {
  profile: PropTypes.array.isRequired,
  currentUser: PropTypes.object,
};

export default createContainer(() => {
  return {
    profile: [],
    currentUser: Meteor.user(),
  };
}, App);

customers.js

import { Meteor } from 'meteor/meteor';
import { Mongo } from 'meteor/mongo';
import { check } from 'meteor/check';

export const Customers = new Mongo.Collection('customers');

Meteor.methods({
  'customers.getProfile'(userId) {
    check(userId, String);

    if (! this.userId) {
      throw new Meteor.Error('not-authorized');
    }

    const temp = Customers.findOne({owner: userId});
    return temp;
  },
});

xxxx.find().fetch()createContainerのチュートリアルで、データベースから特定の顧客プロファイルを取得しようとしていますが、プロファイル テーブルにすべてのデータが取り込まれてしまい、かなり危険に思えます。

現状では、アプリは読み込み中と言うだけで、他には何も起こりません.

私は2日間壁に頭をぶつけていたので、詳細な助けをいただければ幸いです!

4

2 に答える 2

0

あなたの問題はここにあります

class App extends Component {

使用する必要があります

class About extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
    };

  }
  ....
}

extends React.Componentが と同じかどうかはわかりませんextends Componentが、React のすべての機能を初期化するには、コンストラクターと super(props) を呼び出す必要があると思います。

于 2016-10-30T19:38:50.233 に答える