Как заблокировать поворот экрана ,на всех экранах кроме одного?

В React Native вы можете заблокировать поворот экрана, используя модуль react-native-orientation. С помощью этого модуля вы можете настроить ориентацию экрана для каждого отдельного экрана в вашем приложении.

Чтобы заблокировать поворот экрана на всех экранах, кроме одного, вам нужно выполнить следующие шаги:

1. Установите react-native-orientation, выполнив команду npm install react-native-orientation --save в корневой папке вашего проекта.

2. Затем свяжите модуль react-native-orientation в вашем JS-коде. Обычно это делается в файле index.js или App.js. Для этого вам понадобится использовать следующий код:

import Orientation from 'react-native-orientation';

// Устанавливает ориентацию экрана по умолчанию на портрет
Orientation.lockToPortrait();

3. Для того чтобы разблокировать поворот экрана на специфическом экране, вам необходимо вызвать метод Orientation.unlockAllOrientations() перед рендерингом этого экрана, и вызвать метод Orientation.lockToPortrait() после того, как пользователь покинет этот экран.

import React, { useEffect } from 'react';
import { View, Text } from 'react-native';
import Orientation from 'react-native-orientation';

const MyScreen = () => {

  useEffect(() => {
    // Разблокировать поворот экрана на этом экране
    Orientation.unlockAllOrientations();

    return () => {
      // Заблокировать поворот экрана в портретную ориентацию после выхода с этого экрана
      Orientation.lockToPortrait();
    };
  }, []);

  return (
    <View>
      <Text>Экран, на котором разрешен поворот экрана</Text>
      {/* Ваш код... */}
    </View>
  );
};

export default MyScreen;

4. В вашем главном навигационном файле (например, App.js), вы должны настроить навигатор таким образом, чтобы он использовал компонент MyScreen только в тех случаях, когда вам нужно разрешить поворот экрана.

import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import Orientation from 'react-native-orientation';
import MyScreen from './MyScreen';

const Stack = createStackNavigator();

const App = () => {

  // Заблокировать поворот экрана на всех экранах, кроме MyScreen
  useEffect(() => {
    Orientation.lockToPortrait();
  }, []);

  return (
    <NavigationContainer>
      <Stack.Navigator>
        {/*
          ... Ваши другие экраны ...
        */}
        <Stack.Screen name="MyScreen" component={MyScreen} />
      </Stack.Navigator>
    </NavigationContainer>
  );
};

export default App;

Таким образом, вы можете заблокировать поворот экрана на всех экранах, кроме MyScreen, используя модуль react-native-orientation.