我怎样才能在另一个动作之后立即发送动作?
how can i dispatch action right after theother action?
我正在使用 react native 和 redux saga
如果我按下点赞按钮,我想发送 LIKE_POST_REQUEST 并且在我收到 LIKE_POST_SUCCESS 之后立即发送
我想发送 LOAD_POST_REQUEST
这是我的代码
(Explain.js)
const Explain = ({navigation,route}) => {
const dispatch = useDispatch();
const {me} = useSelector((state) =>state.user);
const {singlePost} = useSelector((state) => state.post);
const onLike = () => {
return dispatch({
type: LIKE_POST_REQUEST,
data: singlePost?.id,
}),
dispatch({
type: LOAD_POST_REQUEST,
data:singlePost.id
})
}
const onUnlike = () => {
return dispatch({
type: UNLIKE_POST_REQUEST,
data: singlePost?.id,
}),
dispatch({
type: LOAD_POST_REQUEST,
data:singlePost.id
})
}
const liked = singlePost?.Likers.find((v) => v.id === me?.id);
return (
<Container>
<Hi>
안녕
</Hi>
{ liked
?
<MenuContainer onPress={onUnlike} >
<IconButtonU iconName="favorite"
style={{width:23, height:23}}
source={require('../../Assets/Images/Tabs/heart.png')}
/>
</MenuContainer>
:
<MenuContainer onPress={onLike} >
<IconButtonU iconName="favorite"
source={require('../../Assets/Images/Tabs/ic_favorite_outline.png')}
/>
</MenuContainer>
}
<LikeNumber>
좋아요{' '}
{singlePost?.Likers.length }
</LikeNumber>
</Container>
);
};
export default Explain;
但是当我按onLike dispatch action的过程不正常
如何修复我的代码?
这就是我想要的调度动作的过程
如果你想一个接一个地调用两个动作,那么你首先必须等待从第一个动作到resolve/reject的Promise。
我的建议是创建一个在内部同步调用其他两个动作的动作。
或者您可以在 API 调用已解决后从 LIKE_POST_REQUEST 内部调用 LOAD_POST_REQUEST 操作。
我正在使用 react native 和 redux saga
如果我按下点赞按钮,我想发送 LIKE_POST_REQUEST 并且在我收到 LIKE_POST_SUCCESS 之后立即发送 我想发送 LOAD_POST_REQUEST
这是我的代码
(Explain.js)
const Explain = ({navigation,route}) => {
const dispatch = useDispatch();
const {me} = useSelector((state) =>state.user);
const {singlePost} = useSelector((state) => state.post);
const onLike = () => {
return dispatch({
type: LIKE_POST_REQUEST,
data: singlePost?.id,
}),
dispatch({
type: LOAD_POST_REQUEST,
data:singlePost.id
})
}
const onUnlike = () => {
return dispatch({
type: UNLIKE_POST_REQUEST,
data: singlePost?.id,
}),
dispatch({
type: LOAD_POST_REQUEST,
data:singlePost.id
})
}
const liked = singlePost?.Likers.find((v) => v.id === me?.id);
return (
<Container>
<Hi>
안녕
</Hi>
{ liked
?
<MenuContainer onPress={onUnlike} >
<IconButtonU iconName="favorite"
style={{width:23, height:23}}
source={require('../../Assets/Images/Tabs/heart.png')}
/>
</MenuContainer>
:
<MenuContainer onPress={onLike} >
<IconButtonU iconName="favorite"
source={require('../../Assets/Images/Tabs/ic_favorite_outline.png')}
/>
</MenuContainer>
}
<LikeNumber>
좋아요{' '}
{singlePost?.Likers.length }
</LikeNumber>
</Container>
);
};
export default Explain;
但是当我按onLike dispatch action的过程不正常
如何修复我的代码?
这就是我想要的调度动作的过程
如果你想一个接一个地调用两个动作,那么你首先必须等待从第一个动作到resolve/reject的Promise。 我的建议是创建一个在内部同步调用其他两个动作的动作。 或者您可以在 API 调用已解决后从 LIKE_POST_REQUEST 内部调用 LOAD_POST_REQUEST 操作。