2016-06-24 8 views
6

私は藤堂のチュートリアルにラインのためにかなり多くの行をコピーしてると信じて、私はこのエラーを取得しています:私のReduxレデューサーが私の状態が未定義だと思うのはなぜですか?

Error: Reducer "addReport" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined.

そして、ここでは私のaddReportリデューサです:

const addReport = (state = [], action) => 
{ 
    console.log(state) 
    switch (action.type) { 
    case ADD_NEW_REPORT: 
    return [...state, 
     addReports(undefined, action) 
    ] 
    } 
} 

私は、ロギングステートメントを追加し、空の配列を返すことを検証できます。状態を1のように設定しても、同じ結果が得られます。私は何が欠けていますか?

答えて

12

スイッチケースのdefaultがありません。

default: { 
    return { 
    ...state 
    } 
} 

Reduxはあなたがそれをするのを忘れた場合、素晴らしい子供のように再生されません!

または代わりに、明示的に最後に初期状態に戻すことができます。 If the state passed to the reducer is undefined, you must explicitly return the initial state.

+0

私はオブジェクトを設定するが、私のデフォルトでは、単に「状態」を返していましたので、興味深いことに、この答えは私を助けました。私はあなたが初期状態と同じフォーマットでデフォルト状態を送る必要があることを知らなかった。これは、初期状態が配列や文字列などの場合には当てはまりません。 –

関連する問題