我正在尝试将ngrx与RC5结合使用,但出现一些有线行为。状态更改已由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之前,所有代码都可以正常工作。
我设法解决了。我希望这可以帮助别人。
所以问题出在我的减速器中,我将要做的是:
return Object.assign(state, {something: 'something'}
但是事实证明,只有在创建新对象时才会发出状态更改。所以我要做的就是像这样更改分配:
return Object.assign({}, state, {something: 'something'}
感谢@wiredprogrammer为我指出正确的方向。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句