如何在redux工具箱中传递回调并返回值



我有一种情况,我需要调度和操作并调用一个APi,一旦APi返回结果,我想显示modal或ridirect,如果APi结果长度为1,我需要将用户ridirect到另一个,否则,我需要在同一个屏幕上显示modal,现在我想使用回调来实现这一点,或者如果你有其他更好的方法,请建议。

//调度行动

const getStores = (store) => {
const obj = {
storeId: store._id,
areaId:store.areadId
};
dispatch(StoreAction.getStores(obj));
};

//片码

getAreaStores: (state) => {
state.loading = true;
state.error = null;
state.stores = [];
},
getAreaStoresSuccess: (state, action) => {
state.loading = false;
state.stores = action.payload;
state.error = null;
},
getAreaStoresFailure: (state, action) => {
state.loading = false;
state.error = action.payload;
},

//传奇代码

function* getStores({ payload }) {
try {
const response = yield call(API.getStores, payload);
if (response.success == "1") {
yield put(StoreAction.getAreaStoresSuccess(response.data));
}
} else {
yield put(StoreAction.getAreaStoresFailure(response.error));
}
} catch (error) {
yield put(StoreAction.getAreaStoresFailure(error));
}
}

我们不会在redux-actions/sagas中传递回调。一旦您从API获得响应,更新传奇中存储的值,并且您的组件将监听存储,一旦数据在存储中,您的组件就会自动得到通知,在那里您将检查数据的长度以显示模态或重定向。

最新更新