2016-12-04 2 views
0

У меня есть этот код,Отображение данных из функции Meteor.call с помощью Flowrouter и трекера.

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import { Meteor } from 'meteor/meteor'; 
import TrackerReact from 'meteor/ultimatejs:tracker-react'; 
const username = "test"; 
export default class TasksWrapper extends TrackerReact(React.Component){ 
    constructor(){ 
     super(); 
     Meteor.call('getMyInfo', (error,data)=>{ 
      if(error){ 
       alert(error); 
      }else{ 
       this.username = data.username; 
      } 
     }); 
    } 
    render(){ 
     return (
     <div className="container"> 
     <div className="row profile"> 
      {this.username} 
     </div></div> 
     ) 
    } 
} 

линия кодов выше не работает. Я хочу показать имя пользователя пользователя в div с именем класса «профиль строки».

Когда я запускаю эти коды, я получаю только «тест». Он отображается на странице. То, что я хочу показать, - это usernae. например, «Джон».

Как я могу это сделать? Любой образец?

+0

Где «getMyInfo» определяется? – Mikkel

+0

На сервере. Я положил его в папку сервера / – JMA

ответ

1

Вы должны хранить username на state так, что когда username изменения, React будет повторно вынести компонент:

export default class TasksWrapper extends TrackerReact(React.Component) { 
    constructor() { 
    super(); 
    this.state = { 
     username: '' 
    }; 
    Meteor.call('getMyInfo', (error, data) => { 
     if (error) { 
     alert(error); 
     } else { 
     this.setState({username: data.username}); 
     } 
    }); 
    } 
    render() { 
    return (
     <div className="container"> 
     <div className="row profile"> 
      {this.state.username} 
     </div> 
     </div> 
    ) 
    } 
} 
Смежные вопросы