0

FlowRouter.go()使用 Reactreact-layout

我想更改用于从数据库获取文档的文档中的值。例如,如果我有一个类似的路由~/users/:username并更新username文档中的字段,那么我必须让用户FlowRouter.go('profile', {data})将用户定向到该新 URL。“旧”路线已不复存在。

以下是我的工作版本,但有两个问题:

  1. 我必须使用FlowRouter.go(),这实际上是一个完整的页面刷新(返回将是 404)。
  2. 我仍然在控制台中遇到错误,因为在短时间内组件的反应数据实际上是错误的。

组件的相关部分如下所示:

...
mixins: [ReactMeteorData],

getMeteorData() {
  let data = {};

  let users = Meteor.subscribe('user', {this.props.username});

  if (user.ready())
    data.user = user;

  return data;
}
...

updateName(username) {
  Users.update({_id:this.data.user._id}, {$set:{username}}, null, (e,r) => {
      if (!e)
        FlowRouter.go('profile', {username});
    });
},
...

路线是这样的:

FlowRouter.route('/users/:username', {
  name: 'profile',
  action(params) {
    ReactLayout.render(Main, {content: <UserProfile {...params} />});
  }
});

我在控制台中遇到的错误是:

Exception from Tracker recompute function:

TypeError: Cannot read property '_id' of undefined
4

0 回答 0