Javascript 反应导航一次呈现所有选项卡

Javascript 反应导航一次呈现所有选项卡,javascript,react-native,react-navigation,Javascript,React Native,React Navigation,我有一堆导航标签,其中一个可以打开相机。问题是,当应用程序加载时,react navigation会立即呈现所有页面,这样即使我看不见,相机也会打开。路由器文件只是一组代表每个页面的StackNavigator对象,加载到TabNavigator对象中 我怎样才能只渲染我要显示的页面,使相机在不需要打开时不打开?不知道您的具体设置,但是TabNavigator的配置有一个lazy属性 文件(有时令人困惑)说明: lazy:是否根据需要延迟呈现选项卡,而不是预先呈现选项卡 你可以找到文件 注意:

我有一堆导航标签,其中一个可以打开相机。问题是,当应用程序加载时,react navigation会立即呈现所有页面,这样即使我看不见,相机也会打开。路由器文件只是一组代表每个页面的StackNavigator对象,加载到TabNavigator对象中


我怎样才能只渲染我要显示的页面,使相机在不需要打开时不打开?

不知道您的具体设置,但是TabNavigator的配置有一个
lazy
属性

文件(有时令人困惑)说明:

lazy:是否根据需要延迟呈现选项卡,而不是预先呈现选项卡

你可以找到文件

注意:由于视图的渲染,在显示该视图时会出现一些延迟


希望这有助于在BottomTabNavigatorConfig中设置
lazy:false
我遇到了几乎相同的问题-我的应用程序的一个主要选项卡中使用了摄像头。
您可以从“@react navigation/native”使用“useFocusEffect”:

以下是一个例子:

import React, { useState} from 'react';
import { useFocusEffect } from '@react-navigation/native';

export default function cameraOnFocusOnly() {
    const [cameraActive, setCameraActive] = useState(false);
    useFocusEffect(
        React.useCallback(() => {
            // Do something when the screen is focused
            setCameraActive(true);

            return () => {
                // Do something when the screen is unfocused
                setCameraActive(false);
            };
        }, [])
    );

    return (
        <View>
            {cameraActive && <CameraComponent/>}
        </View>
    );
}
import React,{useState}来自“React”;
从'@react-navigation/native'导入{useFocusEffect};
导出默认函数cameraOnFocusOnly(){
常量[cameraActive,setCameraActive]=useState(false);
聚焦效应(
React.useCallback(()=>{
//当屏幕聚焦时做些什么
setCameraActive(真);
return()=>{
//在屏幕未聚焦时执行某些操作
setCameraActive(假);
};
}, [])
);
返回(
{cameraActive&&}
);
}

我考虑过这一点,但如果切换到其他选项卡,相机页面将不会“取消渲染”。所以你的方法只会起作用一次。你在哪里能找到解决办法呢?@pra不幸的是,没有。