我有以下代码:
//Redux
const user = useSelector((state) => state.usedetailReducer.user);
const removeUserSeat = async () => {
// console.log('User (inside): ', user._id);
await firestore()
.collection('rooms')
.doc(DocID)
.collection('users')
.doc(user._id)
.delete()
.then(() => {
console.log('User deleted! (inside): ', user._id);
});
};
const leaveRoom = () => {
removeUserSeat();
};
useEffect(
() =>
navigation.addListener('beforeRemove', (e) => {
leaveRoom();
e.preventDefault();
navigation.dispatch(e.data.action);
}),
[navigation],
);
如果我从普通按钮 onpress 事件中调用 leaveRoom(),它会获取在当前渲染中更新的 user._id。但是当我按下硬件后退按钮 leaveRoom() 进入 removeUserSeat() 函数时,user._id 没有获得最新的状态值。