2016-06-02 2 views
0

(클라이언트에 모든 사용자를 게시)를 표시하고 나는 시스템의 모든 사용자에게 표시하기 위해 노력하고있어 : 내가 가지고있는유성/반작용 - 모든 사용자가 내가 유성이/반작용 사용하고

를 :/수입/API /users.js

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

if (Meteor.isServer) { 
    // This code only runs on the server 
    // Only publish tasks that are public or belong to the current user 
    Meteor.publish('allUsers', function() { 
    return Meteor.users.find({}, {fields: {"emails.address": 1}}); 
    });  
} 

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

    constructor() { 
     super(); 
     this.state = { 
      subscription: { 
       users: Meteor.subscribe('allUsers') 
      } 
     } 
    } 

    componentWillUnmount() { 
     this.state.subscription.users.stop(); 
    } 


    render() { 
     let users = this.props.users; 
     console.log(users); 
     return (<div> 
      <h1>GoArc User Manager</h1> 

      <div> 
       {users.map((user)=>{ 
        if ('emails' in user) { 
         email = user.emails[0].address; 
        } else { 
         email = '?' 
        } 
        return <div key={user._id}>{user._id} - {email}</div> 
       }) 
       } 
      </div> 
     </div>) 
    } 
} 


export default createContainer(() => { 
    return { 
    users: Meteor.users.find({ }).fetch(), 
    }; 
}, App); 

/imports/ui/App.jsx

그러나 그것은 여전히 ​​현재 로그인 사용자를 보여줍니다.

autopublish/insecure를 설정하면 코드가 올바르게 작동합니다.

Meteor/React를 사용하여 모든 사용자를 클라이언트에 게시하는 올바른 방법은 무엇입니까?

또 다른 관련 문제는 그 난 여전히 email.address 필드는 현재 사용자에 대한 표시에 안전하지 않은 autopublish를 설정/경우에도 -이 필드 발표에도 불구하고 :

return Meteor.users.find({}, {fields: {"emails.address": 1}}); 
+0

사용자가 주에 거주하고 있으며 소품에서 가져 오려고했습니다. –

+0

내가 이것을 수행하는 방법이라고 설명하는 https://www.youtube.com/watch?v=ootKAwnQiP4를 따라갔습니다. 그것이 틀린 경우 수정을 제안하십시오 –

답변

0

코드는 내가 맞지만를 /server/main.js에 import '../imports/api/users.js'; 을 추가하는 것을 잊어 버렸습니다.

+0

아마도 당신은 질문을 삭제해야합니다. – MasterAM

+1

나는 다음 번에도 비슷한 문제를 가지고 그렇게 할 것입니다. –