0
私の質問はreduxに関連し、より具体的には、減速関数内のエラー/失敗の処理方法に関するものです。私はngrxのサンプルアプリケーション(https://github.com/ngrx/example-app)とエラー/失敗の処理方法を参照しています。ngrx/redux reducer関数のエラー/失敗の処理
export function reducer(state = initialState, action: collection.Actions): State {
switch (action.type) {
case collection.ActionTypes.LOAD: {
return Object.assign({}, state, {
loading: true
});
}
case collection.ActionTypes.LOAD_SUCCESS: {
const books = action.payload;
return {
loaded: true,
loading: false,
ids: books.map(book => book.id)
};
}
case collection.ActionTypes.ADD_BOOK_SUCCESS:
case collection.ActionTypes.REMOVE_BOOK_FAIL: {
const book = action.payload;
if (state.ids.indexOf(book.id) > -1) {
return state;
}
return Object.assign({}, state, {
ids: [ ...state.ids, book.id ]
});
}
case collection.ActionTypes.REMOVE_BOOK_SUCCESS:
case collection.ActionTypes.ADD_BOOK_FAIL: {
const book = action.payload;
return Object.assign({}, state, {
ids: state.ids.filter(id => id !== book.id)
});
}
default: {
return state;
}
}
}
誰かが減速機能の中から、これら二つの動作に対処するための必要性を説明していただけます:
REMOVE_BOOK_FAIL
ADD_BOOK_FAIL
ここ は、私が言及していますリデューサ機能です
たとえば、状態から書籍を削除する理由(ADD_BOOK_FAIL
の場合)
ブックの追加アクションが失敗した場合、ブックはストアに存在しません。それは...ですか?
私はよく分かりませんが、API呼び出しの可能性があります。ユーザーが本を追加すると、ブックはサーバーに送信されるよりも、ストアにローカルに追加され、サーバーがデータベース(ADD_BOOK_FAIL)に保存できないと、ストアから削除する必要があります。 – disstruct