2017-02-17 2 views
5

각도 2와 Ngrx를 사용하고 있습니다.Ngrx angular 2 초기 ​​상태는 어떻게 설정해야합니까?

NgOnInit 함수에서 앱 제목을 구독하는 곳이 어디입니까? 그리고이 하위 항목은 NgOnInit에서도이 제목을 파견합니다. 사용자가 홈 컴포넌트를 방문 할 때 제목을 변경하려고합니다.

문제는 내 App 구성 요소가 Home 구성 요소의 부모이며 첫 번째로 호출되므로 구독 할 때 제목이 있어야하는 정의되지 않은 개체로 끝납니다.

가장 적합한 솔루션은 무엇입니까? 생성자에서 초기 제목을 설정할 수 있습니다 (먼저 호출 됨) 다음과 같이 구독 할 수 있습니다. (store || {}).title 또는 감속기의 초기 상태를 설정하는 방법은 무엇입니까? 값이 템플릿에서 바로 출력 인 경우

답변

6

궁극적으로, 당신은 항상 async 파이프를 사용할 수 있습니다

function someReducer (state = {title: 'Home'}, action) { 
    switch (action.type) { 
     default: 
      return state; 
    } 
} 

:

<h1>{{ (someReducer | async)?.title }}</h1> 

은 또는 당신 감속기 자체 내부의 초기 상태를 설정할 수 있습니다 마지막으로 상점을 초기화 할 때 초기 상태를 설정할 수 있습니다.

StoreModule.provideStore(reducers, initialState) 

잘하면이 방법으로 도움이됩니다.

관련 문제