使用 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>
)
}
}
我有这个代码,
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>
)
}
}