为什么我的模态没有出现在react原生iOS中.但它在react原生android中工作



我的处境很奇怪。我总是使用安卓模拟器开发我的应用程序。由于运行两个模拟器,iOS和android总是把我的电脑变成烤箱。

我在此应用程序中使用redux

我得到了一个名为cart的组件。每当用户试图访问这个组件时,我都在测试用户是否将项目添加到购物车中。我正在使用useEffect挂钩来测试它。

我的cart组件看起来像这个

//Fetch cart data
let cartList = useSelector((state) => state.productReducer.cartList);
useEffect(() => {
if (cartList?.OrderDTO?.Id === null) {
setModalVisible(true);
//alert("your Cart is empty")
}
}, []);
useEffect(() => {
if (cartList?.OrderDTO?.Id === null) {
setModalVisible(true);
//alert("your Cart is empty")
}
}, [cartList]);
return (
<ScrollView style={styles.pageContainer}>
<Loader loading={loading} />
<View>
<NotiDialog
modalVisible={modalVisible}
setVisible={setModalVisible}
contentText="Your cart is empty"
comfirmText="OK"
comfirm={() => handleEmptyCart()}
titleText="Notification"
/>
<ComfirmDialog
modalVisible={modalTwoVisible}
setVisible={setModalTwoVisible}
contentText="Are you sure you want to empty the cart? "
comfirmText="OK"
comfirm={() => emptyTheCart()}
titleText="Notification"
/>
</View>

当应用程序为loaded时,我已经获取了一次cartData正如你在useEffect中看到的,我正在使用setModalVisible(true)来显示模态。但问题是android中总是出现这种模式弹出。我已经试了大约100次了。但在iOS中,它从未出现

因此,我尝试在iOS中打开***commented***警报,而不是模态警报。弹出消息your Cart is empty。但模态没有。那么我的模态有什么问题吗?

这是我的modal组件

import {
...,
Modal,
} from 'react-native';
const NotiDialog = ({
modalVisible,
setVisible,
comfirm,
comfirmText,
contentText,
titleText,
}) => {
const confirmFunc = () => {
comfirm();
setVisible(false);
};
return (
<View style={styles.centeredView}>
<Modal
animationType="slide"
transparent={true}
visible={modalVisible}
onRequestClose={() => {
setModalVisible(!modalVisible);
}}>
<View style={styles.centeredView}>
...
</View>
</Modal>
</View>
);
};

在打开模式之前尝试setTimeout()

最新更新