5월 27일

임덤덤·2024년 5월 27일
0

React Native Navigation Type

우선 React Native에서 Navigation 기능은 React Navigation을 사용했다

In TypeScript

해당 라이브러리에서 Navigate를 하는 방법은 Root에서 StackNavigate를 통해 진행된다

export default function App() {
  const Stack = createNativeStackNavigator<RootStackParamList>();

  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen
          name="Home"
          options={{ title: "도감" }}
          component={HomeScreen}
        />
        <Stack.Screen name="DetailScreen" component={PokemonDetailScreen} />
      </Stack.Navigator>
    </NavigationContainer>
  );
}

위 코드처럼 Stack이라는 NativeStack을 만들어서 Navigator 안에 Screen이 있는 구조로 되어있다

Stack을 보면 createNativeStackNavigator의 제네릭 타입으로 RootStackParamList가 들어가있는걸 볼 수 있다

Navigation을 위해 Screen의 Children으로 navigate를 사용하기 위해서는 Stack에 어떤 Screen이 들어있는지 타입으로 지정해 줘야한다

코드

export type RootStackParamList = {
  Home: undefined;
  DetailScreen: PokemonDataType;
};

위 코드처럼 RootNavigateScreen들을 추가 해주면 되고 뒤 타입은 어떤걸 params로 넘겨줄것인지를 타입설정 하는것인데 없으면 undefined 하면된다


Screen

이제 Navigate할 함수를 작성해주면 되는데 사용 방법은 Screen Component에 Props로 넣어주면된다

export type PokemonDetailScreenProps = NativeStackScreenProps<
  RootStackParamList,
  "Home"
>;

export default function HomeScreen({ navigation }: PokemonDetailScreenProps) {
  ...(코드들)
  
  아래 코드를 onPress에서 실행시키면 됌
  navigation.navigate("Root에 넣어둔 Screen의 Key값",{넘겨줄 파라미터 없으면 생략})
}
profile
응애🐣 예비 개발자 입니다.

0개의 댓글