2017-01-31 13 views
2

私は簡単な質問があります。還元店の変更を元に戻す

私のApp Reduxには1つの結合ストアがあり、データをフェッチするときには状態の一部として設定されます。

次に、私はReduxを介して状態を管理するReactエディタを持っています。 ユーザーが[編集]をクリックすると、すべてのフィールドが編集可能になります。彼は混乱を招くことがあります。その後、「破棄」ボタンをクリックし、取得したデータの初期状態に戻ります。

元のフェッチされたデータをdeepcopyしようとしましたが(ユーザーがそれを変更した後)、その後、私の店で適切なデータが得られましたが、ビューはまだ修正されたデータを表示します店舗)。

私の質問は、ビューがこのデータを表示する方法を適切に行うことです。 以下は私の編集者削減です。

case editorActions.DISCARD_CHANGES: 
    return { 
    ...state, 
    editing: false, 
    data: { 
     ...state.data, 
     ...mapGistToData(payload) 
    } 
    }; 

、私はそれにそのような元のデータ渡し:

onDiscardClick={discardChanges.bind(null, orginalGist)} 

orginal: deepcopy(payload), 

答えて

1

から来ていたデータが状態で、 "データ" に格納されていると仮定します。

初期設定時にdeepcopyから元のデータを渡して、actionCreatorを呼び出します。

discardChange(original); 

ActionCreator:

export function discardChange(originalData) { 
    return { 
    type: DISCARD_CHANGES, 
    payload: originalData 
    } 
} 

リデューサー:

case editorActions.DISCARD_CHANGES: 
    return { 
    ...state, 
    editing: false, 
    data: editorActions.payload 
    }; 
関連する問題