在 snack.expo 上,我的代码运行良好。但是,当我在本地运行它时,该应用程序立即崩溃。我已经确定它来自主选项卡屏幕中对 MyTabs 的调用。当您将 MyTabs 替换为 Home 时,应用程序运行良好。但是,对于我的整个项目,我需要 MyTabs 函数。
如果有人能提供一些关于为什么会这样的见解,我将非常感激!如果我需要提供有关我的 package.json 文件或任何其他内容的任何详细信息,请告诉我。
这是一个demo运行我在 snack.expo 上谈论的确切代码。
这是 repository我发布了
这是我的 app.js 文件
import React from "react";
import { StyleSheet, Text, View } from "react-native";
import { NavigationContainer } from "@react-navigation/native";
import { createStackNavigator } from "@react-navigation/stack";
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
import { MaterialCommunityIcons } from "@expo/vector-icons";
import Home from "./screens/Home";
const Tab = createBottomTabNavigator();
function MyTabs() {
return (
<Stack.Navigator initialRouteName="Home">
<Stack.Screen
name="Home"
component={Home}
options={{ headerShown: false }}
/>
</Stack.Navigator>
);
}
export default function App() {
return (
<NavigationContainer>
<Tab.Navigator
initialRouteName="Home"
screenOptions={{
tabBarActiveTintColor: "#F60081",
tabBarInactiveTintColor: "#4d4d4d",
tabBarStyle: {
backgroundColor: "#d1cfcf",
borderTopColor: "transparent",
},
}}
>
<Tab.Screen
name="Home"
component={MyTabs}
options={{
tabBarLabel: "Home",
headerShown: false,
tabBarIcon: ({ color, size }) => (
<MaterialCommunityIcons name="home" color={color} size={size} />
),
}}
/>
</Tab.Navigator>
</NavigationContainer>
);
}
const Stack = createStackNavigator();
最佳答案
在本地安装项目后,我在 npm 上收到了一些警告。
为了解决这个问题,我做了以下操作,我建议您尝试一下:
1- 使用 git bash rm -r node_modules
删除 node_modules
2-删除package-lock.json
文件
3- 清除缓存:npm cache clear --force
4-再次安装模块npm install
而且效果很好。
如果您在控制台上没有得到任何信息: 使用 Xcode 构建到您的设备。然后从菜单中选择窗口 > 设备和模拟器。选择您的设备并打开设备的控制台。当应用程序崩溃时,您可以通过阅读控制台来获取更多信息。希望对您有所帮助!
关于reactjs - 在 tab.screen 组件中调用函数导致应用在本地崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70368037/