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.)
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.)
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.)
Reference
이 문제에 관하여(PURE React Native 내비게이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/silvenleaf/navigation-in-pure-react-native-2ilf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)