2016-10-10 6 views
0

の状態をリセットしますか?私は、全体のReduxの店舗をリセットするに興味がないんだけど、それだけの減速サブツリー部分。 警告:私は突然私のコンポーネントの一部と、次のエラーで未定義の小道具を取得し、CLEAR_SUGGESTIONSアクションがディスパッチされるしかし時はいつでも、私はこれが働くと思うだろうReduxの - Reduxの店のサブツリーをリセットする適切な方法は何ですかサブツリー

//initial state 
const initialState = { 
    isFetching: false, 
    error: '', 
    page: 0 
} 

//reducer for suggestions store 
export default function suggestions (state = initialState, action) { 
    switch (action.type) { 
     case FETCHING_SUGGESTIONS : { 
      return { 
       ...state, 
       isFetching: true 
      } 
     } 
     case FETCHING_SUGGESTIONS_SUCCESS : { 
      return { 
       ...state, 
       [action.suggestion.suggestionId] : action.suggestion 
      } 
     } 
     case FETCHING_SUGGESTIONS_ERROR : { 
      return { 
       ...state, 
       isFetching: false, 
       error: "Error in fetching suggestions" 
      } 
     } 
     case CHANGE_PAGE : { 
      return { 
       ...state, 
       page: action.page 
      } 
     } 
     case ADD_SUGGESTION : { 
      return { 
       ...state, 
       [action.suggestion.suggestionId]: action.suggestion 
      } 
     } 
     case CLEAR_SUGGESTIONS : { 
      return { 
       initialState 
      } 
     } 
     default : 
      return state 
    } 
} 

:ここ

は例の抜粋です。 JS:36警告:performUpdateIfNecessary:予期しないバッチ番号(現在の161、157保留中の)私はこれを正しくやっている100%の自信がないんだけど

を。問題が私のレデューサーか、コンポーネントライフサイクルメソッドのどこかにあるかどうかを誰かが確認できますか?

ありがとうございます!

答えて

1

あなたが誤って「初期状態と呼ばれるキーの下に初期状態を入れ子にしています。あなただけ欲しい:

case CLEAR_SUGGESTIONS : { 
    return initialState 
} 

店の状態は不変であるため、初期状態をコピーする必要は、ありません。

+0

、あなたは正しかったです。私は以前もこれをテストしました。私はこのReduxの状態サブツリーがリセットされたとき、私のコンポーネントが正しく更新されないとの問題があると信じるように始めています。ありがとう –

1

作成したオブジェクトは、次のようになります。

{ 
    initialState: { 
    isFetching: false, 
    error: '', 
    page: 0 
    } 
} 

何が欲しいのはこれです:

case CLEAR_SUGGESTIONS : { 
    return { 
    ...initialState 
    } 
} 
+0

結果は同じです。これは、サブツリーの状態をリセット処理するための正しい方法であれば、おそらく何か他のものは、私のコンポーネントが間違っている...私は見おかげ –

関連する問題