Javascript React Native model一旦被冻结';它打开了

Javascript React Native model一旦被冻结';它打开了,javascript,reactjs,react-native,react-modal,Javascript,Reactjs,React Native,React Modal,我有一个模式,当用户访问屏幕时会打开,这取决于用户是否拥有令牌。因此,事件的顺序如下所示: 1) 屏幕将侦听用户的到达,并尝试从本地存储中检索令牌 2) 如果不存在令牌,上下文API将同时打开两个对象。第一个是模态本身,第二个是模态中的菜单组件(模态中有三个组件,一次打开一个:“菜单”、“注册”和“登录”) 我遇到的问题是,模式和菜单组件打开得非常好,但是新打开的模式被冻结且不可读取。当我在以下代码中将useffect更改为useLayoutEffect时,此问题开始出现: const ples

我有一个模式,当用户访问屏幕时会打开,这取决于用户是否拥有令牌。因此,事件的顺序如下所示:

1) 屏幕将侦听用户的到达,并尝试从本地存储中检索令牌

2) 如果不存在令牌,上下文API将同时打开两个对象。第一个是模态本身,第二个是模态中的菜单组件(模态中有三个组件,一次打开一个:“菜单”、“注册”和“登录”)

我遇到的问题是,模式和菜单组件打开得非常好,但是新打开的模式被冻结且不可读取。当我在以下代码中将
useffect
更改为
useLayoutEffect
时,此问题开始出现:

const plessesignin=props=>{
常数{
状态:{authOpen},
authModalOpen
}=使用上下文(上下文)
useLayoutEffect(()=>{
const focusListener=props.navigation.addListener('didFocus',()=>{
retrieveToken()
})
return()=>{
focusListener.remove()
}
}, [])
常量retrieveToken=async()=>{
试一试{
const token=await AsyncStorage.getItem(登录\u令牌)
如果(!令牌){
authModalOpen()
}
}捕捉(错误){
抛出新错误(err)
}
}
如果(authOpen){
返回(
,我尝试过包括以下内容,但没有成功:

useffect(()=>{
如果(Platform.OS==='ios'){
LayoutImation.easeInEaseOut();
}
})