2017-09-11 15 views
2

が、私は例外を直面していますし、わからない理由...NGRX:例外TypeError:アクションはtypeプロパティ

私はdispatcheffectactionとそれを処理をしようとしていますが、私は続けるngrxに新たなので持っている必要がありますTypeError: Actions must have a type property

アクション:

export const TEST_ACTION = 'test_action'; 
export class TryTest implements Action { 
    readonly type = TEST_ACTION; 

    constructor(public playload: any) { 
    } 
} 
export type MyActions = TryTest; 

効果:

エラーを取得

コンポーネント:

this.store.dispatch(new MyActions.TryTest({ name: 'test' })); 

私が使用しています:

効果:4.0.5およびストア:これは他の誰かが始まるのに役立ちます場合は4.0.3

+0

新しいアクションを派遣したいとき、私はそれ以外のコンストラクタが呼び出されていない、あなたがparanthesisを( '()')を追加する必要があると思う: 'this.store.dispatch(新しいMyActions.TryTest({名: 'test '}))())' – David

+0

Davidさんは当時はありがとうございましたが、私はコンストラクタを呼び出してオブジェクトを渡すと思っています{name:test} – Thibs

+0

ああ、ごめんなさい、あなたのコードを誤読しました!気にしないで! – David

答えて

0

を...私はありませんでしたが判明ngrxがマップ演算子で期待しているアクションを返します。

1

効果は最後にアクションを戻す必要があるためです。 ので、次の2つの選択肢があります。

  1. 戻り値{タイプ:文字列}オブジェクト
  2. リターン新しいアクション() "./myactions.actions" からMyActionsとして

輸入*を、

@Injectable() 
export class MyEffects { 
    @Effect() 
    testEffect = this.actions$ 
     .ofType(MyActions.TEST_ACTION) 
     .map((action: MyActions.TryTest) => { 
      return {type:'your_action'} 
     }); 

    constructor(private actions$: Actions) {} 
} 
+3

郵便番号だけではありません。代わりに説明を追加してください。 – tmuecksch

関連する問題