reactjs - 在 tab.screen 组件中调用函数导致应用在本地崩溃

标签 reactjs react-native

在 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

而且效果很好。

enter image description here

如果您在控制台上没有得到任何信息: 使用 Xcode 构建到您的设备。然后从菜单中选择窗口 > 设备和模拟器。选择您的设备并打开设备的控制台。当应用程序崩溃时,您可以通过阅读控制台来获取更多信息。希望对您有所帮助!

关于reactjs - 在 tab.screen 组件中调用函数导致应用在本地崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70368037/

相关文章:

javascript - 如何从当前 URL 获取路由名称

javascript - 我如何在 react 中向按钮添加条件渲染

android - 是否可以在 react-native 中支持更新的 android sdk 版本?

typescript - Android Build 上 node_modules/react-native/index.js : Unexpected token, 中的 React Native SyntaxError 预期 "{"(13:7)

testing - 使用 Jest 进行测试时模拟 native 模块

javascript - ./src/index.scss (./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-5-1!./node_modules/postcss-loader/src??postcss!./node_modules/

javascript - 从 React 中的 ref 回调读取 getBoundingClientRect 值

reactjs - React + Redux + React 导航 2.0 : connect() or withNavigation() first?

react-native - 如何使用 Expo React-Native 检测摇动事件?

React-Native:限制卡片部分中显示的文本长度