react-native - React Native - React Navigation Bottom Tab 包含 WebView 时的缓慢转换(滞后)
问题描述
当应用程序来自后台时切换选项卡时滞后
我之前有 4 个标签集中(渲染)。因此,当应用程序来自后台时,我更改了选项卡,但切换这些选项卡需要 0,3 - 1 秒。
滞后只是在第一次重新关注每个标签。
依赖项
- "@react-navigation/bottom-tabs": "^5.8.0",
- "@react-navigation/native": "^5.7.3",
- “反应”:“16.13.1”,
- “反应原生”:“0.63.2”,
- "react-native-safe-area-context": "^3.1.7",
- “反应原生屏幕”:“^2.10.1”,
- “react-native-webview”:“^10.8.3”
应用程序.tsx
import React, {useEffect} from 'react';
import {StyleSheet} from 'react-native';
import {createBottomTabNavigator} from '@react-navigation/bottom-tabs';
import {NavigationContainer, useIsFocused} from '@react-navigation/native';
import WebView from 'react-native-webview';
function Tab1() {
const focused = useIsFocused();
useEffect(() => {
console.log(focused);
}, [focused]);
return <WebView source={{uri: 'https://google.com'}} style={styles.tab1} />;
}
function Tab2() {
const focused = useIsFocused();
useEffect(() => {
console.log(focused);
}, [focused]);
return <WebView source={{uri: 'https://facebook.com'}} style={styles.tab1} />;
}
function Tab3() {
const focused = useIsFocused();
useEffect(() => {
console.log(focused);
}, [focused]);
return (
<WebView source={{uri: 'https://instagram.com'}} style={styles.tab1} />
);
}
function Tab4() {
const focused = useIsFocused();
useEffect(() => {
console.log(focused);
}, [focused]);
return <WebView source={{uri: 'https://tiktok.com'}} style={styles.tab1} />;
}
const Tab = createBottomTabNavigator();
export default function App() {
return (
<NavigationContainer>
<Tab.Navigator lazy={false}>
<Tab.Screen name={'Tab1'} component={Tab1} />
<Tab.Screen name={'Tab2'} component={Tab2} />
<Tab.Screen name={'Tab3'} component={Tab3} />
<Tab.Screen name={'Tab4'} component={Tab4} />
</Tab.Navigator>
</NavigationContainer>
);
}
const styles = StyleSheet.create({
tab1: {
flex: 1,
backgroundColor: 'red',
},
tab2: {
flex: 1,
backgroundColor: 'blue',
},
tab3: {
flex: 1,
backgroundColor: 'green',
},
tab4: {
flex: 1,
backgroundColor: 'black',
},
});
解决方案
推荐阅读
- php - 是否可以从另一个包覆盖 laravel 包视图
- macos - 连接 Phoenix 时出错 ERROR 103 (08004):无法建立连接
- python - 如何使用 numexpr 评估进行字符串比较?不是 df.eval
- json - 使用 swifty json 解析对象时是否有一些错误?
- cypress - 如何单击柏树中 iframe 中存在的菜单项?
- protractor - URL 更改后使用 browser.getCurrentUrl() 时出现超时错误
- php - TCP 上的十六进制协议
- jquery - jQuery Validate 检查字段的时间值是否不在具有相同日期的事件的开始时间和结束时间之间
- php - 即使我遵循 tcpdf 示例 1by1,PHP 中的 tcpdf wordpress 错误
- java - 通过 Java 访问片段中的 CalendarView