使用 redux-offline 时如何添加一个动作来调度而不是 url
How to add an action to dispatch instead of the url in effect when using redux-offline
我正在使用 "redux-offline" 让我的应用程序离线工作。我想在效果部分派发一个动作,并将后端结果返回给提交部分。
meta: {
offline: {
effect: { type: "CHECK_NUMBER" },
commit: { type: "DISPLAY_NUMBER" },
rollback: { type: TYPES.CHECK_NUMBER, meta: { data } }
}
}
我想首先触发 "CHECK_NUMBER" 并将结果返回到提交部分。
我发现无法在 "meta.offline.effect" 中触发某个动作。我们可以在 "meta.offline.commit" 和 "meta.offline.rollback" 中添加要触发的动作。我使用 "redux-saga" 向 API 发送调用并取回结果,现在我的应用程序在离线模式下工作。
ex: export const addCustomer = (data) => {
return {
type: TYPES.ADD_CUSTOMER,
payload: { data },
meta: {
offline: {
effect: { },
commit: { type: "SUBMIT_CUSTOMER", meta: { data } },
rollback: { type: TYPES.SUBMIT_CUSTOMER, meta: { data } }
}
}
}
}
在传奇中:
function* submitCustomer(action) {
const data = { FirstName: action.meta.data };
const result = yield axios.post(`https://localhost:44300/api/Values/SubmitCustomer`, data)
.then(Response => Response).catch(error => {
throw error
});
}
function* customerSaga() {
yield takeEvery("SUBMIT_CUSTOMER", submitCustomer);
}
export default customerSaga;
我正在使用 "redux-offline" 让我的应用程序离线工作。我想在效果部分派发一个动作,并将后端结果返回给提交部分。
meta: {
offline: {
effect: { type: "CHECK_NUMBER" },
commit: { type: "DISPLAY_NUMBER" },
rollback: { type: TYPES.CHECK_NUMBER, meta: { data } }
}
}
我想首先触发 "CHECK_NUMBER" 并将结果返回到提交部分。
我发现无法在 "meta.offline.effect" 中触发某个动作。我们可以在 "meta.offline.commit" 和 "meta.offline.rollback" 中添加要触发的动作。我使用 "redux-saga" 向 API 发送调用并取回结果,现在我的应用程序在离线模式下工作。
ex: export const addCustomer = (data) => {
return {
type: TYPES.ADD_CUSTOMER,
payload: { data },
meta: {
offline: {
effect: { },
commit: { type: "SUBMIT_CUSTOMER", meta: { data } },
rollback: { type: TYPES.SUBMIT_CUSTOMER, meta: { data } }
}
}
}
}
在传奇中:
function* submitCustomer(action) {
const data = { FirstName: action.meta.data };
const result = yield axios.post(`https://localhost:44300/api/Values/SubmitCustomer`, data)
.then(Response => Response).catch(error => {
throw error
});
}
function* customerSaga() {
yield takeEvery("SUBMIT_CUSTOMER", submitCustomer);
}
export default customerSaga;