2016-09-25 4 views
0

これを理解しようとしているサークル内を移動しています...ng2-redux @selectはAnonymousSubjectを返します

新しくなりました。私が選択し登録ページに続いて

export interface IAppState { 
    account?: IAccount; 
} 

/** 
* root reducer 
*/ 
export default combineReducers<IAppState> ({ 
    account: accountReducer 
}); 

:ちょうど私はaccountReducerからユーザーアカウントオブジェクトを選択しようとしている

... Angular2に入る

const INITIAL_STATE: IAccount = { 
    anonymous: true, 
    email:"" 
}; 


export function accountReducer(state: IAccount = INITIAL_STATE, action:any):IAccount 
{ 
    switch (action.type) { 
     default: 
     return state; 
    } 
} 

これはrootReducerですアカウントにAnonymousSubjectオブジェクトが返されます。

export class AccountSignupFormComponent { 

    //@select(state => state.account) account; 
    @select() account; 

    constructor(
     private _redux: NgRedux<IAppState>, 
     private _actions: AccountActions 

    ){} 

ngOnInit(){ 
    console.log(this.account); 
    // account is an AnonymousSubject from RxJs. 
} 

this._redux.getState()を見ると、正しい状態が表示されます。

私は単純なものを見逃していると思っていますが、私はそれを見ていません。

誰かが迷っていることを見てください。

答えて

0

これは正しいです。

select<S>(
     selector: PropertySelector | 
      PathSelector | 
      FunctionSelector<RootState, S>, 
      comparator?: Comparator): Observable<S> { 
... 
let result: Observable<S>; 
... 
return result.distinctUntilChanged(comparator); 

https://github.com/angular-redux/ng2-redux/blob/v4.0.0-beta.3/src/components/ng-redux.ts#L135

あなたはあなたのテンプレートにasyncパイプとそれを使用するか、または単にを購読することができます: ソースコード

function getter() { 
     return NgRedux.instance.select(bindingKey, comparator); 
} 

https://github.com/angular-redux/ng2-redux/blob/v4.0.0-beta.3/src/decorators/select.ts#L35

でこの行を見てみましょうそれ。ここで

Plunker Example

です
関連する問題