有没有办法在没有刷新/重定向的情况下更新Flow Router中的URL?

时间:2016-02-02 02:11:14

标签: meteor flow-router

使用React和FlowRouter.go()时,有没有办法在不使用react-layout的情况下有效更新网址的一部分?

我想更改用于从数据库获取文档的文档中的值。例如,如果我有~/users/:username之类的路由并更新文档中的username字段,则必须使用FlowRouter.go('profile', {data})将用户定向到该新网址。 " old"路线消失了。

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

  1. 我必须使用FlowRouter.go(),这实际上是整页刷新(并且返回将是404)。
  2. 我仍然在控制台中出现错误,因为片刻的反应数据实际上是错误的。
  3. 组件的相关部分如下:

    ...
    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
    

0 个答案:

没有答案