收到此错误:错误:捆绑失败:错误:无法解析模块\`react-native-safe-area-context\`

新手上路,请多包涵

运行我的应用程序后出现此错误:

错误:捆绑失败:错误:无法从 node_modules/react-navigation-stack/lib/module/vendor/views/Stack/StackView.js 解析模块 react-native-safe-area-context —:在项目中找不到 react-native-safe-area-context。

但是我为旧演示所做的相同。它工作得很好。

我不知道我在这里做错了什么。请检查我的代码:

对于安装:

  1. React Native 导航和手势处理程序:

npm install --save react-navigation

npm install --save react-native-gesture-handler

  1. 反应本机堆栈:

npm install --save react-navigation-stack

应用程序.js

 import { createAppContainer } from "react-navigation";
import { createStackNavigator } from "react-navigation-stack";
import FirstOptionsPage from "./FirstOptionsPage";

const MainNavigator = createStackNavigator(
  {
    FirstOptions: FirstOptionsPage
  },
  {
    defaultNavigationOptions: {
      headerStyle: {
        // backgroundColor: '#28F1A6',
        elevation: 0,
        shadowOpacity: 0
      },
      headerTintColor: "#ca375e",
      headerTitleStyle: {
        fontWeight: "bold",
        color: "#161616"
      }
    }
  }
);

const App = createAppContainer(MainNavigator); // For setting Navigation Stack
export default App;

FirstOptionsPage.js:

 import React from "react";
import {
  SafeAreaView,
  StyleSheet,
  View,
  Text,
  ScrollView,
  Switch
} from "react-native";

export default class FirstOptionsPage extends React.Component {
  static navigationOptions = {
    title: "Preferences"
  };

  constructor(props) {
    super(props);
    this.state = {
      switch1Value: false
    };
  }

  toggleSwitch1 = value => {
    this.setState({ switch1Value: value });
    console.log("Switch 1 is: " + value);
  };

  render() {
    const { navigate } = this.props.navigation;
    return (
      <SafeAreaView style={styles.mainContainerStyle}>
        <View style={styles.subContainerStyle}>
          <Text style={styles.subtitleTextStyle}>Someone likes my post</Text>
          <View style={styles.switchStyle}>
            <Switch
              onValueChange={this.toggleSwitch1}
              value={this.state.switch1Value}
              thumbColor={MAGENTA_COLOR_CODE}
              trackColor={{
                false: GREY_COLOR_CODE,
                true: DARK_GREY_COLOR_CODE
              }}
            />
          </View>
        </View>
      </SafeAreaView>
    );
  }
}

我是 React-Native 的新手。我怎样才能解决这个问题?

原文由 Gautam Shrivastav 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 565
1 个回答

我认为问题出在 SafeAreaView ,对于新的 react-native 版本,它已迁移到 react-native-community/react-native-safe-area-view 。如果你想使用 SafeAreaView ,你应该先安装它。

新用途是这样的:

 import SafeAreaView from 'react-native-safe-area-view';

export default function MyAwesomeApp() {
  return (
    <SafeAreaView style={{ flex: 1 }}>
      <View style={{ flex: 1 }}>
        <Text>
          Look, I'm safe! Not under a status bar or notch or home indicator or
          anything! Very cool
        </Text>
      </View>
    </SafeAreaView>
  );
}

要安装它,您可以使用以下命令:

yarn add react-native-safe-area-view react-native-safe-area-context

如果您不使用自动链接,则还必须链接它。有关它的详细信息,请参阅此 链接

原文由 Lenoarod 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题