Я получаю эту ошибку после запуска моего приложения:
ошибка: связывание не удалось: ошибка: не удалось разрешить модуль react-native-safe-area-context
из node_modules/react-navigation-stack/lib/module/vendor/views/Stack/StackView.js
: response-native-safe-area-context не найден в проекте.
Но то же самое, что я сделал для моей старой демонстрации. Это работало отлично.
Я не знаю, что я делаю здесь не так. Пожалуйста, проверьте мой код:
Для установки:
- Реагируйте на встроенную навигацию и обработчик жестов:
npm install --save react-navigation
npm install --save react-native-gesture-handler
- Реагировать на собственный стек:
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>
);
}
}
Я новичок в React-Native. Пожалуйста, помогите мне исправить это.
react-native
react-native-android
react-native-ios
react-native-navigation
Гаутам Шривастав
источник
источник
react-native-safe-area-context
в ваших модулях узла,react-navigation-stack
требует, чтобы у ваших модулей узла этого не былоОтветы:
Я думаю, что проблема заключается в том
SafeAreaView
, что для новой версии реакции-нативной она была перенесенаreact-native-community/react-native-safe-area-view
. если вы хотите использоватьSafeAreaView
, вы должны сначала установить его.новое использование выглядит так:
для установки вы можете использовать следующие команды:
yarn add react-native-safe-area-view react-native-safe-area-context
.если вы не используете автоматическую ссылку, вы должны также связать ее. Подробнее об этом см. эту ссылку
источник
error: 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.
@react-native-community/masked-view
чтобы это исправить. Тогда мой код работал успешно. Спасибо за помощь.Это немного забавно, я хотел добавить навигацию, поэтому я добавил
чтобы это работало нормально мне пришлось добавить:
Тогда я получил
тогда я получил
Поэтому я искал представление в маске (которое в настоящее время не поддерживается выставкой, согласно ее документу git). Тогда я узнал, что я использую кошку:
Поэтому с этого момента я использую следующие команды в начале всех моих реактивно-родных проектов, чтобы иметь возможность правильно использовать навигацию:
источник
После запуска этих команд:
Это вызвало у меня ошибку в маске-просмотре, поэтому мне также пришлось запустить,
npm i @react-native-community/masked-view
и теперь мой код может быть успешно запущен на физическом устройстве Android.Спасибо Леноароду и Гаутаму Шриваставу за то, что они указали правильное направление.
источник
0.60
и выше, используйте пряжу вместо npm и не делайте ссылки .Я думаю, что вы пропустили зависимость от ссылок с вашим проектом, поэтому вы можете попробовать, как показано ниже:
С React Native 0.6 или выше:
На iOS убедитесь, что у вас установлены и запущены Cocoapods :
С React native 0.59 и ниже попробуйте:
источник
скопируйте все и вставьте в терминал
работать на меня
источник
Запустите следующее:
expo
выберет правильную версию и затем установит ее.источник
используйте команду npm, я реагирую на стек навигации, чтобы решить эту ошибку
источник
Запуск Metro Bundler непосредственно из каталога проекта работает для меня. Может кто-нибудь дать мне знать, работает ли он и на них?
# Очистить кеш rm -rf $ TMPDIR / реагировать ; rm -rf $ TMPDIR / haste- ; rm -rf $ TMPDIR / metro- ; сторож часы-дель-все
* # Запуск Metro Bundler напрямую реагирует на собственный запуск
* # Теперь запустите
react-native run-android
илиreact-native run-ios
в другой вкладкеисточник