React native 反应导航';s navigate()函数不使用';行不通
我正在使用React Native和React导航库构建应用程序 重现问题的步骤 因此,使用React Navigation 5,我构建了一个具有两个屏幕的堆栈导航器,如下所示:React native 反应导航';s navigate()函数不使用';行不通,react-native,react-navigation,react-component,react-dom,React Native,React Navigation,React Component,React Dom,我正在使用React Native和React导航库构建应用程序 重现问题的步骤 因此,使用React Navigation 5,我构建了一个具有两个屏幕的堆栈导航器,如下所示: const Stack=createStackNavigator(); 常量导航=()=>{ { 导航。导航('B'); },[导航]; 问题 问题是屏幕停留在A中,无法导航到B 可能原因 我认为当屏幕A尝试执行其useffect代码时,屏幕B仍然没有加载到导航器的DOM中。因为当我实际尝试将useffect的执行延
const Stack=createStackNavigator();
常量导航=()=>{
{
导航。导航('B');
},[导航];
问题
问题是屏幕停留在A中,无法导航到B
可能原因
我认为当屏幕A尝试执行其useffect
代码时,屏幕B仍然没有加载到导航器的DOM中。因为当我实际尝试将useffect
的执行延迟2秒时,如下所示:
useffect(()=>{
设置超时(()=>{
导航。导航('B');
}, 2000)
},[导航];
它工作了,屏幕从A导航到B!所以我想B有时间在不到2秒内加载到DOM
有解决办法吗?
因此,如果我的假设是正确的,我想知道是否有一种正式的方法来检查屏幕B是否已有效地加载到导航器的DOM中,或者可能在执行a中的useffect
之前等待导航器渲染。可能有一个特殊的react钩子或库来检查这种情况
如果我错了,请帮助我!我认为导航不起作用,因为您没有像这样将堆栈屏幕包装到堆栈导航器中:
这显示在抱歉,我刚刚忘记了上面的代码,但它在应用程序中。当我用按钮触发它时,导航功能可以正常工作。嗨……你找到解决此问题的方法了吗?