Meteor 调用方法使用 return 值
Meteor call method use the return value
有人能告诉我如何在我的反应组件中使用从 post.get meteor 方法收到的结果吗?假设我想将状态设置为结果然后渲染 it.I 试图将 Meteor.call 绑定到此或将其分配给变量,没有任何效果..
这是我的任务:
1.In componentDidMount 对“post.get”进行 Meteor.call 并检索 post
结果是一个包含对象的数组。
export default class PostEdit extends React.Component {
componentDidMount() {
Meteor.call("post.get", route.current().params._id, function(
error,
result
) {
if (error) {
alert(error);
} else {
return result;
}
});
}
render() {
return (
<div>
<RenderEditPost />
</div>
);
}
}
我的方法
Meteor.methods({
"post.get": function(_id) {
return Posts.find({ _id: _id }).fetch();
}
});
试试这个
export default class PostEdit extends React.Component {
constructor(props) {
super(props);
this.state = { data: [] }
}
componentDidMount() {
const self = this;
Meteor.call("post.get", route.current().params._id, function(
error,
result
) {
if (error) {
alert(error);
} else {
//use arrow functions to use this.setState
self.setState({data: result});
}
});
}
render() {
return (
<div>
<RenderEditPost data={this.state.data}/>
</div>
);
}
}
有人能告诉我如何在我的反应组件中使用从 post.get meteor 方法收到的结果吗?假设我想将状态设置为结果然后渲染 it.I 试图将 Meteor.call 绑定到此或将其分配给变量,没有任何效果.. 这是我的任务:
1.In componentDidMount 对“post.get”进行 Meteor.call 并检索 post
结果是一个包含对象的数组。
export default class PostEdit extends React.Component {
componentDidMount() {
Meteor.call("post.get", route.current().params._id, function(
error,
result
) {
if (error) {
alert(error);
} else {
return result;
}
});
}
render() {
return (
<div>
<RenderEditPost />
</div>
);
}
}
我的方法
Meteor.methods({
"post.get": function(_id) {
return Posts.find({ _id: _id }).fetch();
}
});
试试这个
export default class PostEdit extends React.Component {
constructor(props) {
super(props);
this.state = { data: [] }
}
componentDidMount() {
const self = this;
Meteor.call("post.get", route.current().params._id, function(
error,
result
) {
if (error) {
alert(error);
} else {
//use arrow functions to use this.setState
self.setState({data: result});
}
});
}
render() {
return (
<div>
<RenderEditPost data={this.state.data}/>
</div>
);
}
}