Gặp lỗi này: error: bundling fail: Error: Không thể giải quyết mô-đun `Reac -igen-safe-area-bối cảnh`


42

Tôi gặp lỗi này sau khi chạy Ứng dụng của mình:

lỗi: gói không thành công: Lỗi: Không thể giải quyết mô-đun react-native-safe-area-contexttừ node_modules/react-navigation-stack/lib/module/vendor/views/Stack/StackView.js: không thể tìm thấy bối cảnh phản ứng-nguồn gốc-an toàn-khu vực trong dự án.

Nhưng điều tương tự tôi đã làm cho bản demo cũ của mình. Nó hoạt động hoàn toàn tốt.

Tôi không biết những gì tôi đang làm sai ở đây. Vui lòng kiểm tra mã của tôi:

Để cài đặt:

  1. Phản ứng điều hướng bản địa & xử lý cử chỉ:

npm install --save react-navigation

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

  1. Phản ứng ngăn xếp bản địa:

npm install --save react-navigation-stack

App.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>
    );
  }
}

Tôi chưa quen với React-Native. Xin hãy giúp tôi khắc phục điều này.


1
kiểm tra react-native-safe-area-contexttrong các mô-đun nút của bạn, react-navigation-stackyêu cầu điều đó nhưng các mô-đun nút của bạn không có điều đó
Jigar Shah

Câu trả lời:


32

Tôi nghĩ vấn đề là ở SafeAreaViewphiên bản gốc phản ứng mới, nó đã được chuyển sang react-native-community/react-native-safe-area-view. Nếu bạn muốn sử dụng SafeAreaView, bạn nên cài đặt nó trước.

việc sử dụng mới là như thế này:

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>
  );
}

Để cài đặt nó, bạn có thể sử dụng các lệnh sau :
yarn add react-native-safe-area-view react-native-safe-area-context.

nếu bạn không sử dụng liên kết tự động, bạn cũng phải liên kết nó. để biết chi tiết về nó, xem liên kết này


Bây giờ tôi đang gặp lỗi nàyerror: bundling failed: Error: Unable to resolve module `@react-native-community/masked-view` from `node_modules/react-navigation-stack/lib/module/vendor/views/MaskedView.js`: @react-native-community/masked-view could not be found within the project.
Gautam Shrivastav

Và thực sự mọi thứ đã hoạt động tốt trong dự án trước đây của tôi. Bây giờ nó đang hiển thị vấn đề này.
Gautam Shrivastav

bạn nên biết kể từ phản ứng gốc 0,6, nhiều thư viện đã loại bỏ lõi phản ứng gốc. vấn đề này giống như vấn đề trước, hãy đọc liên kết này [ github.com/react-native-community/react-native-masked-view]
Lenoarod

7
Vâng, sau khi làm những gì bạn nói trong câu trả lời của bạn, tôi cũng phải cài đặt @react-native-community/masked-viewđể sửa nó. Sau đó, mã của tôi đã làm việc thành công. Cảm ơn đã giúp đỡ.
Gautam Shrivastav

1
Vâng, điều này được viết trong ghi chú phát hành github.com/react-navlation/stack/release/tag/v2.0.1
mexique1

20

Đó là một chút buồn cười, tôi muốn thêm điều hướng vì vậy tôi đã thêm

cài đặt npm - điều hướng phản ứng

để nó hoạt động tốt, tôi phải thêm:

expo cài đặt Reac -igen-cử chỉ-handler Reac -igen-reanimated

Sau đó tôi đã nhận

Không thể giải quyết "phản ứng-nguồn gốc-an toàn-khu vực-bối cảnh" Vì vậy, tôi đã thêm:

expo cài đặt Reac-navigation-stack

expo cài đặt Reac -igen-safe-area-view Reac -igen-safe-area-bối cảnh

sau đó tôi đã nhận

gói không thành công: Lỗi: Không thể giải quyết mô-đun @react-native-community/masked-view

Vì vậy, tôi đã tìm kiếm chế độ xem đeo mặt nạ (hiện không được hỗ trợ bởi hội chợ, theo tài liệu git của nó). Sau đó tôi phát hiện ra tôi sử dụng mèo:

expo install @ Reac -igen-Community / masked-view có thể hoạt động hay không :)

Do đó, từ bây giờ tôi sử dụng các lệnh sau khi bắt đầu tất cả các dự án gốc phản ứng của mình, để có thể sử dụng điều hướng đúng cách:

cài đặt npm - điều hướng phản ứng

expo cài đặt Reac -igen-cử chỉ-handler Reac -igen-reanimated Reac-navigation-navigation

expo cài đặt Reac -igen-safe-area-view Reac -igen-safe-area-bối cảnh

expo install @ Reac -igen-Community / masked-view


Không tìm thấy mô-đun: Không thể giải quyết 'LOL phản ứng-màn hình gốc'
Dr.G

chết tiệt, đó là sự thật hahaha
Kai

15

Sau khi chạy các lệnh này:

npm i react-native-safe-area-view react-native-safe-area-context &&
react-native link react-native-safe-area-context

Nó nhắc tôi một lỗi về chế độ xem đeo mặt nạ, vì vậy tôi cũng phải chạy npm i @react-native-community/masked-viewvà sau đó mã của tôi có thể chạy thành công trên thiết bị vật lý Android.

Cảm ơn LenoarodGautam Shrivastav đã chỉ ra hướng đi đúng đắn.


Đối với phiên bản gốc phản ứng 0.60trở lên, sử dụng sợi thay vì npm và không liên kết .
Fatih Mert Doğancan

4

Tôi nghĩ rằng bạn bỏ lỡ liên kết phụ thuộc với dự án của bạn để bạn có thể thử như dưới đây:

Với React Native 0,6 trở lên:

Trên iOS, đảm bảo bạn đã cài đặt và chạy Cocoapods :

cd ios
pod install
cd ..

Với React gốc 0,59 và thử thấp hơn:

react-native link react-native-safe-area-context

Tôi đã làm điều này rồi nhưng không có may mắn.
Gautam Shrivastav

2

sao chép tất cả và dán vào terminal

expo install react-navigation react-native-gesture-handler react-native-reanimated react-native-screens

làm việc cho tôi


1

Chạy như sau:

expo install react-native-safe-area-context

expo sẽ chọn đúng phiên bản và sau đó cài đặt nó.


1

sử dụng khen ngợi npm i Reac-navigation-stack t giải quyết lỗi này


1

Bắt đầu Metro Bundler trực tiếp từ thư mục dự án làm việc cho tôi. Ai đó có thể cho tôi biết nếu nó cũng làm việc cho họ?

# Làm sạch bộ nhớ cache rm -rf $ TMPDIR / Reac- ; rm -rf $ TMPDIR / vội vàng- ; rm -rf $ TMPDIR / tàu điện ngầm- ; watchman watch-del-all

* # Bắt đầu Metro Bundler trực tiếp bắt đầu phản ứng tự nhiên

* # Bây giờ chạy react-native run-androidhoặc react-native run-iostrong một tab khác

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.