React native 反应导航';s navigate()函数不使用';行不通

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的执行延

我正在使用React Native和React导航库构建应用程序

重现问题的步骤 因此,使用React Navigation 5,我构建了一个具有两个屏幕的堆栈导航器,如下所示:

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钩子或库来检查这种情况


如果我错了,请帮助我!

我认为导航不起作用,因为您没有像这样将堆栈屏幕包装到堆栈导航器中:



这显示在

抱歉,我刚刚忘记了上面的代码,但它在应用程序中。当我用按钮触发它时,导航功能可以正常工作。嗨……你找到解决此问题的方法了吗?