2016-08-15 3 views
2

RC5와 함께 ngrx를 사용하려고하지만 일부 유선 동작이 나타납니다. 상태 변경 사항은 ngrx 로그 모니터에 의해 제대로 캡처되지만 구독자에게 전송되지는 않습니다.ngrx with Angular 2 RC5

그러나 일단 나는 (@ 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로 마이그레이션하기 전에 모든 코드가 작동했습니다.

+0

모니터에서 상태 변경이 표시되지만 방출되지 않을 때 제일 먼저 확인하는 것은 감속기가 새 객체를 반환한다는 것입니다. 자유롭게 object.assign을 사용하십시오. 새로운 물체가 없으며, 관찰 물에서 새 물체가 방출되지 않습니다. 그것은 아니지만 시작하는 장소입니다. – wiredprogrammer

답변

1

나는 그것을 해결할 수있었습니다. 나는 이것이 누군가를 돕기를 바랍니다.

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

그러나 내가 새로운 개체를 만드는 경우에만 방출됩니다 상태 변화를 밝혀 :

그래서 문제가 무엇을 할 것이라고이 내 감속기했다. 그래서 내가해야 할 일은 다음과 같이 할당을 변경하는 것입니다.

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

올바른 방향으로 나를 가리켜 주셔서 감사합니다. @wiredprogrammer.

+0

rc5에서 ngrx를 추가하는 방법을 보여줄 수 있습니까? webstorm does doesnt provideStore –

+0

흠 .. 나는 또한 webstorm을 사용하고 있으며 어떤 오류나 경고도 내지 못하고있다. provideStore (reducers)가 app.module.ts의 providers 배열 옆에 있는지 확인하십시오. –

+0

나는 plunkr이 작동하지 않는 것처럼 보일 수 있지만, 여기에 내 app.module.ts가있는 jsFiddle이 있습니다. 그것이 도움이되기를 바랍니다 https://jsfiddle.net/czzofLL5/ –

관련 문제