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>
    );
  }
}