Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 72410
- 스위프트
- ios
- reactnative android
- DelayInput
- Server-Side-Rendering
- 중첩함수
- replacingOccurrences
- textinput
- 약타입언어
- lineending
- SWIFT
- 프로그래머스
- multiline
- JavaScript
- 리액트네이티브
- switch구문
- reactnavigation
- client-side-rendering
- 17681
- 옵셔널
- 나를부르는숲
- 동적언어
- 약타입
- beforePopState
- 데이터타입함수
- 함수형프로그래밍
- 비반환함수
- ReactNative
- next.js
Archives
- Today
- Total
으니의 개발로그
[React Native] React Navigation 스택 초기화하기 본문
[React Native] React Navigation 스택 초기화하기
React Native 프로젝트에서 React Navigation 중 Stack Navigation 을 사용하면 스택이 계속 쌓인다. 이 때 스택을 초기화 해야하는 경우가 있다. 대표적으로 step을 밟으면서 회원가입을 할 경우! 회원가입이 끝나고 난 뒤에도 뒤로가기를 했을때 회원가입 중인 페이지를 안 보이게 하려면 스택을 초기화해야한다.
초기화 해주는 방법은 쉽다. navigate
대신 reset
을 사용하면 된다.
navigation.reset({routes: [{name: "welcome", params: { email, password }}]})
name 옆에는 지정해준 컴포넌트 이름, params 에는 다음 페이지로 보내줄 변수들을 입력!
코드 예시
import React from 'react';
import {StyleSheet, View, Text, Button} from 'react-native';
export default ({navigation}) => {
return (
<View style={styles.container}>
<Text style={styles.text}>세번째 페이지입니다.</Text>
<Button
onPress={() => navigation.reset({routes: [{name: 'last'}]})}
title="다음 페이지로"
color="#999"
/>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
text: {
fontSize: 20,
fontWeight: 'bold',
},
});
첫번째~세번째 페이지에서는 스와이프로 뒤로가기가 가능한데,reset
을 사용한 마지막 페이지에서는 뒤로가기가 안되는 것을 확인할 수 있다.