【发布时间】:2021-05-22 02:45:08
【问题描述】:
我正在使用 react-native 和 redux-saga
我正在通过在 FollowFood 页面上的初始呈现中使用 useEffect 来调度 FLFOOD_UP_REQUEST。
但是,如果我在它变为 FLFOOD_UP_SUCCESS 之前返回另一个页面,则 FLFOOD_UP_REQUEST 不会停止,稍后会变为 FLFOOD_UP_SUCCESS,从而导致错误。如果执行了 FLFOOD_UP_REQUEST 并移动到另一个页面,则 FLFOOD_UP_SUCCESS 成功并且页面屏幕不显示。
因此,我想做的是,即使由于useEffect执行了FLFOOD_UP_REQUEST,如果我在FLFOOD_UP_SUCCESS之前移动另一个页面,FLFOOD_UP_REQUEST会停止,我希望FLFOOD_UP_SUCCESS不会被执行。
这是我的代码
(FollowFood.js)
const FollowFood = () => {
useEffect(() => {
dispatch({
type: FLFOOD_UP_REQUEST,
});
}, []);
return (
<>
<FlatList
keyExtractor={(item) => String(item.id)}
onEndReached={() => {
EndReached();
}}
onEndReachedThreshold={2}
refreshing={loading}
renderItem={({item}) => (
<ImageContainer>
<CardFollow item={item} Follow={Follow} />
</ImageContainer>
)}
ListEmptyComponent={<LoadingFood label={'no.'} />}
/>
</>
);
};
export default FollowFood;
(saga.js)
function* flfoodPost(action) {
try {
const result = yield call(flfoodUpAPI, action.data);
yield put({
type: FLFOOD_UP_SUCCESS,
data: result.data,
});
} catch (err) {
yield put({
type: FLFOOD_UP_FAILURE,
error: err.response.data,
});
}
}
【问题讨论】:
标签: javascript node.js reactjs react-native redux-saga