ngrx/store 6.0.1 / Angular 6.x
ngrx/store 를 처음 써 보는 중에 만나 이슈인데... 어찌보면 당연하긴 하겠지만... 뭔가 magic을 기대하기도 했는데.. 어쨌든...
createSelector(<state>, <action>) 이렇게 될때, <state> 는 하위의 변화를 detecting하지는 못하는 걸로 보인다. 즉.
state: {
inner: {
a: true
}
}
의 경우
createSelect(state => state.inner, inner => inner.a)
이렇게 해 놓고, dispatch를 통해서, state.inner.a = false 로 하면
selector의 Observer가 fire되지 않는다. 즉, inner.a 는 바뀌었으나, state.inner는 바뀐게 아니라는...
이때 states reference 자체가 reducer에서 바뀌는 경우.. 즉
return state;
가 아니라
return {...state}
가 되면 state의 reference다 바뀌므로 Observer가 fire된다.
'Domain > Web' 카테고리의 다른 글
[Angular] Material - tooltip show 도중 내용 변경시 issue. (0) | 2018.07.11 |
---|---|
[Angular6] Inter-module communication. (0) | 2018.06.23 |