使用 Flowrouter 和 trackerreact 显示来自 Meteor.call 函数的数据。

Display data from Meteor.call function with Flowrouter and trackerreact.

我有这个代码,

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 中显示用户的用户名,class 名称为 "row profile"。

当我运行这个代码时,我只得到"test"。它显示在页面中。我要显示的是用户名。例如,"John".

我该怎么做?有样品吗?

你需要通过 state 存储 username 以便当 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>
    )
  }
}