PURE React Native 내비게이션
1장: 루트 설정
반응 네이티브 탐색을 위한 핵심 구성을 설정해 보겠습니다.
 1단계: "@react-navigation/native" 설치
먼저 리액트 내비게이션의 핵심 패키지를 설치합니다.
 npm install @react-navigation/native
이제 뭐?
 2단계: 핵심 유틸리티 패키지 설치
이제 반응 네이티브 탐색을 위한 두 가지 핵심 유틸리티 패키지를 설치합니다. 이들은 "react-native-screens"및 "react-native-safe-area-context"입니다.
(expo이면 expo로 설치하고 없으면 npm으로 설치)
 npm install react-native-screens react-native-safe-area-context
이제 순수 반응 네이티브 앱의 경우 "react-native-screens"패키지가 Android 기기에서 제대로 작동하려면 추가 구성 단계가 하나 필요합니다. 활동이 다시 시작될 때 일관되게 유지되지 않는 보기 상태와 관련된 충돌을 방지하려면 이 변경이 필요합니다. 무엇을 어떻게?
(PURE React Native의 경우)
"android/app/src/main/java/{Your_package_name}/MainActivity.java"에 있는 "MainActivity.java"파일을 편집합니다. "MainActivity"클래스의 본문에 다음 코드를 추가합니다.
 @Override  
protected void onCreate(Bundle savedInstanceState) {  
super.onCreate(null);  
}
그리고 이 파일의 맨 위에 "import"문을 추가했는지 확인하십시오.
 import android.os.Bundle;
 3단계: NavigationContainer에서 앱 래핑
마지막으로 앱을 NavigationContainer로 래핑하겠습니다.
 import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import HomeScreen from './NeiXin/screens/HomeScreen';
const App = () => {
  return (
    <NavigationContainer>
      <HomeScreen/>
    </NavigationContainer>
  );
};
export default App;
 2장: 유틸리티 설정
서랍 및/또는 스택 네비게이터를 설정하는 방법을 알아봅시다.
 1단계: 유틸리티 패키지 설치
"react-native-gesture-handler"및 "react-native-reanimated"유틸리티 패키지를 설치해야 합니다. 모든(서랍, 스택 및 탭) 네비게이터에 대해 동일합니다! 설치하자
(expo이면 expo로 설치하고 없으면 npm으로 설치)
 npm install react-native-gesture-handler react-native-reanimated
이제 PURE React Native Apps의 경우 다음 줄을 항목 파일의 맨 위에 배치해야 합니다(제게는 App.tsx 파일). 우리는 그것이 맨 위에 있고 그 앞에 다른 것이 없는지 확인해야 합니다.
 import 'react-native-gesture-handler';
훌륭합니다. 유틸리티 설정을 완료했습니다. 이제 Navigator에 따라 핵심 패키지를 설치해 보겠습니다. :)
 2단계: Reanimated 2 구성
PURE React Native 앱의 경우 "Reanimated 2"관련 오류가 발생할 수 있습니다. 이를 위해 적절하게 구성해야 합니다. 어떻게? 함께 태그하자!
(자세한 내용은 이 항목을 확인하십시오reanimated 2 configuration )
   
  
  1 부:
babel.config.js에서 이것을 추가하십시오
(참고: 되살아난 플러그인은 마지막에 나열되어야 합니다.)
   module.exports = {
      ...
      presets: [...],
      plugins: [
          ...
          'react-native-reanimated/plugin' //make sure this is always the last line
      ],
  };
   
  
  2부: 헤르메스 엔진 켜기
"android/app/build.gradle"을 편집하여 Hermes 엔진을 켭니다.
 project.ext.react = [
  enableHermes: true  // <- here | clean and rebuild if changing
]
   
  
  파트 3: MainApplication.java 업데이트
"android/app/main/java/{Your_package_name}/MainApplication.java"를 업데이트합니다.
   import com.facebook.react.bridge.JSIModulePackage; // <- add
  import com.swmansion.reanimated.ReanimatedJSIModulePackage; // <- add
  ...
  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
  ...
      @Override //find these four lines, these already exist, we need to add the next 4 lines after these four lines
      protected String getJSMainModuleName() {
        return "index";
      }
      @Override //add these four lines after the above four lines
      protected JSIModulePackage getJSIModulePackage() {
        return new ReanimatedJSIModulePackage();
      }
    };
  ...
새로운 React Native 프로젝트에 대한 위의 변경 사항 집합을 나타내는 this diff을 참조할 수 있습니다.
   
  
  파트 4: 실행해 보기
앱을 실행해 보십시오. 여전히 오류가 발생하면 이 명령을 사용하여 캐시를 제거하십시오.
 npx react-native start --reset-cache
캐시를 제거하는 앱을 다시 시작합니다. 이제 선택적으로 이 명령을 사용하여 앱을 중지하고 다시 시작할 수 있습니다.
 npm run android
도움이 되길 바랍니다 :)
 3장: 특정 네비게이터
서랍, 스택 및 탭 네비게이터를 사용하는 방법을 알아봅시다. 이 명령으로 특정 네비게이터를 설치합니다.
 (서랍 탐색의 경우)
 npm install @react-navigation/drawer
 (스택 탐색의 경우)
나는 훨씬 더 커스터마이징이 가능하다고 알려져 있기 때문에 이것을 선호합니다
 npm install @react-navigation/stack
[또는]
많은 것을 커스터마이징하는 것은 불가능하거나 불가능하다고해서별로 선호하지 않습니다.
 npm install @react-navigation/native-stack
 (하단 탭 탐색인 경우)
 npm install @react-navigation/bottom-tabs
 서랍 탐색
 const Drawer = createDrawerNavigator();
function RootDrawer() {
  return (
    <Drawer.Navigator>
      <Drawer.Screen name="Home Page" component={HomeScreen}/>
      <Drawer.Screen name="About Page" component={AboutScreen}/>
    </Drawer.Navigator>
  )
}
 스택 탐색
 const Stack = createStackNavigator();
function RootStack() {
  return (
    <Stack.Navigator>
      <Stack.Screen name="Home Page" component={HomeScreen}/>
      <Stack.Screen name="About Page" component={AboutScreen}/>
    </Stack.Navigator>
  )
}
 하단 탭 탐색
 const Tab = createBottomTabNavigator();
function RootBottomTab() {
  return (
    <Tab.Navigator>
      <Tab.Screen name="Home Page" component={HomeScreen}/>
      <Tab.Screen name="About Page" component={AboutScreen}/>
    </Tab.Navigator>
  )
}
 무엇 향후 계획?
 1. Pure React Native를 사용한 비동기 스토리지
 2. Pure React Native를 사용한 프로젝트
 3. 앱 개발에 대한 추가 정보
 4. 플레이스토어에 배포하는 방법
 5. JavaScript/TypeScript를 사용한 미친 짓
 6. 모든 서버에 대한 자동화된 테스트 작성
 7. Expo를 사용하여 NO XP로 Android 앱을 만드는 방법
(apk 생성 포함)
 의심의 여지가 있습니까?
의견을 남기거나 Twitter에서 @SilveLEAF로 연락하거나
나에 대해 더 알고 싶어? 여기와!
 SilvenLEAF.github.io
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(PURE React Native 내비게이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://dev.to/silvenleaf/navigation-in-pure-react-native-2ilf
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
npm install @react-navigation/native
npm install react-native-screens react-native-safe-area-context
@Override  
protected void onCreate(Bundle savedInstanceState) {  
super.onCreate(null);  
}
import android.os.Bundle;
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import HomeScreen from './NeiXin/screens/HomeScreen';
const App = () => {
  return (
    <NavigationContainer>
      <HomeScreen/>
    </NavigationContainer>
  );
};
export default App;
서랍 및/또는 스택 네비게이터를 설정하는 방법을 알아봅시다.
1단계: 유틸리티 패키지 설치
"react-native-gesture-handler"및 "react-native-reanimated"유틸리티 패키지를 설치해야 합니다. 모든(서랍, 스택 및 탭) 네비게이터에 대해 동일합니다! 설치하자
(expo이면 expo로 설치하고 없으면 npm으로 설치)
npm install react-native-gesture-handler react-native-reanimated
이제 PURE React Native Apps의 경우 다음 줄을 항목 파일의 맨 위에 배치해야 합니다(제게는 App.tsx 파일). 우리는 그것이 맨 위에 있고 그 앞에 다른 것이 없는지 확인해야 합니다.
import 'react-native-gesture-handler';
훌륭합니다. 유틸리티 설정을 완료했습니다. 이제 Navigator에 따라 핵심 패키지를 설치해 보겠습니다. :)
2단계: Reanimated 2 구성
PURE React Native 앱의 경우 "Reanimated 2"관련 오류가 발생할 수 있습니다. 이를 위해 적절하게 구성해야 합니다. 어떻게? 함께 태그하자!
(자세한 내용은 이 항목을 확인하십시오reanimated 2 configuration )
1 부:
babel.config.js에서 이것을 추가하십시오
(참고: 되살아난 플러그인은 마지막에 나열되어야 합니다.)
  module.exports = {
      ...
      presets: [...],
      plugins: [
          ...
          'react-native-reanimated/plugin' //make sure this is always the last line
      ],
  };
2부: 헤르메스 엔진 켜기
"android/app/build.gradle"을 편집하여 Hermes 엔진을 켭니다.
project.ext.react = [
  enableHermes: true  // <- here | clean and rebuild if changing
]
파트 3: MainApplication.java 업데이트
"android/app/main/java/{Your_package_name}/MainApplication.java"를 업데이트합니다.
  import com.facebook.react.bridge.JSIModulePackage; // <- add
  import com.swmansion.reanimated.ReanimatedJSIModulePackage; // <- add
  ...
  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
  ...
      @Override //find these four lines, these already exist, we need to add the next 4 lines after these four lines
      protected String getJSMainModuleName() {
        return "index";
      }
      @Override //add these four lines after the above four lines
      protected JSIModulePackage getJSIModulePackage() {
        return new ReanimatedJSIModulePackage();
      }
    };
  ...
새로운 React Native 프로젝트에 대한 위의 변경 사항 집합을 나타내는 this diff을 참조할 수 있습니다.
파트 4: 실행해 보기
앱을 실행해 보십시오. 여전히 오류가 발생하면 이 명령을 사용하여 캐시를 제거하십시오.
npx react-native start --reset-cache
캐시를 제거하는 앱을 다시 시작합니다. 이제 선택적으로 이 명령을 사용하여 앱을 중지하고 다시 시작할 수 있습니다.
npm run android
도움이 되길 바랍니다 :)
3장: 특정 네비게이터
서랍, 스택 및 탭 네비게이터를 사용하는 방법을 알아봅시다. 이 명령으로 특정 네비게이터를 설치합니다.
 (서랍 탐색의 경우)
 npm install @react-navigation/drawer
 (스택 탐색의 경우)
나는 훨씬 더 커스터마이징이 가능하다고 알려져 있기 때문에 이것을 선호합니다
 npm install @react-navigation/stack
[또는]
많은 것을 커스터마이징하는 것은 불가능하거나 불가능하다고해서별로 선호하지 않습니다.
 npm install @react-navigation/native-stack
 (하단 탭 탐색인 경우)
 npm install @react-navigation/bottom-tabs
 서랍 탐색
 const Drawer = createDrawerNavigator();
function RootDrawer() {
  return (
    <Drawer.Navigator>
      <Drawer.Screen name="Home Page" component={HomeScreen}/>
      <Drawer.Screen name="About Page" component={AboutScreen}/>
    </Drawer.Navigator>
  )
}
 스택 탐색
 const Stack = createStackNavigator();
function RootStack() {
  return (
    <Stack.Navigator>
      <Stack.Screen name="Home Page" component={HomeScreen}/>
      <Stack.Screen name="About Page" component={AboutScreen}/>
    </Stack.Navigator>
  )
}
 하단 탭 탐색
 const Tab = createBottomTabNavigator();
function RootBottomTab() {
  return (
    <Tab.Navigator>
      <Tab.Screen name="Home Page" component={HomeScreen}/>
      <Tab.Screen name="About Page" component={AboutScreen}/>
    </Tab.Navigator>
  )
}
 무엇 향후 계획?
 1. Pure React Native를 사용한 비동기 스토리지
 2. Pure React Native를 사용한 프로젝트
 3. 앱 개발에 대한 추가 정보
 4. 플레이스토어에 배포하는 방법
 5. JavaScript/TypeScript를 사용한 미친 짓
 6. 모든 서버에 대한 자동화된 테스트 작성
 7. Expo를 사용하여 NO XP로 Android 앱을 만드는 방법
(apk 생성 포함)
 의심의 여지가 있습니까?
의견을 남기거나 Twitter에서 @SilveLEAF로 연락하거나
나에 대해 더 알고 싶어? 여기와!
 SilvenLEAF.github.io
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(PURE React Native 내비게이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://dev.to/silvenleaf/navigation-in-pure-react-native-2ilf
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
npm install @react-navigation/drawer
npm install @react-navigation/stack
npm install @react-navigation/native-stack
npm install @react-navigation/bottom-tabs
const Drawer = createDrawerNavigator();
function RootDrawer() {
  return (
    <Drawer.Navigator>
      <Drawer.Screen name="Home Page" component={HomeScreen}/>
      <Drawer.Screen name="About Page" component={AboutScreen}/>
    </Drawer.Navigator>
  )
}
const Stack = createStackNavigator();
function RootStack() {
  return (
    <Stack.Navigator>
      <Stack.Screen name="Home Page" component={HomeScreen}/>
      <Stack.Screen name="About Page" component={AboutScreen}/>
    </Stack.Navigator>
  )
}
const Tab = createBottomTabNavigator();
function RootBottomTab() {
  return (
    <Tab.Navigator>
      <Tab.Screen name="Home Page" component={HomeScreen}/>
      <Tab.Screen name="About Page" component={AboutScreen}/>
    </Tab.Navigator>
  )
}
1. Pure React Native를 사용한 비동기 스토리지
2. Pure React Native를 사용한 프로젝트
3. 앱 개발에 대한 추가 정보
4. 플레이스토어에 배포하는 방법
5. JavaScript/TypeScript를 사용한 미친 짓
6. 모든 서버에 대한 자동화된 테스트 작성
7. Expo를 사용하여 NO XP로 Android 앱을 만드는 방법
(apk 생성 포함)
의심의 여지가 있습니까?
의견을 남기거나 Twitter에서 @SilveLEAF로 연락하거나
나에 대해 더 알고 싶어? 여기와!
 SilvenLEAF.github.io
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(PURE React Native 내비게이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://dev.to/silvenleaf/navigation-in-pure-react-native-2ilf
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
Reference
이 문제에 관하여(PURE React Native 내비게이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/silvenleaf/navigation-in-pure-react-native-2ilf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)