ngrx与Angular 2 RC5

时间:2016-08-15 09:53:31

标签: angular ngrx

我正在尝试使用带有RC5的ngrx,但我得到了一些有线行为。 ngrx日志监视器正确捕获状态更改,但它们不会发送给我的订阅者。

但是一旦我改变页面(我正在使用@ angular / router 3),我的所有状态更改都会逐个发送给订阅者。

以下是代码示例

    ngOnInit() {
      this._store.dispatch(this._mediaActions.load());
      this._positionListener = this._store
        .let(getMediaFolderContent())
        .subscribe(a => this.position = a);

      this._store.let(getMediaFolderContent()).subscribe(a => console.log(a));
      this._store.select(s => s.media).subscribe(a => console.log('just a test: ', a));
    }

当我第一次导航到页面时,我得到了最新状态,但没有捕获到后续更改。然后,一旦我从页面导航并返回页面,我就会得到状态更改。

我知道这不是一个有效问题的代码,但是它有很多,我不知道从哪里开始复制它。我只是跳过有人在RC5中处理类似的问题。

在迁移到RC5之前,所有代码都有效。

1 个答案:

答案 0 :(得分:1)

我设法解决了这个问题。我希望这可以帮助别人。

问题在于我的减速器我会做的是:

return Object.assign(state, {something: 'something'}

但事实证明,如果我创建一个新对象,状态更改才会被释放。所以我要做的就是更改分配:

return Object.assign({}, state, {something: 'something'}

感谢@wiredprogrammer指出我正确的方向。

相关问题