강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

이영훈님의 프로필 이미지
이영훈

작성한 질문수

React Native with Expo: 제로초에게 제대로 배우기

스와이프되는 탭 내비게이션 만들기

[TypeError: Cannot read property 'find' of undefined] 문제

작성

·

28

0

제로초님 안녕하세요!! 강의에 나온대로 top tabs 적용중인데, withLayoutContext에 제네릭 타입까지 강의와 같이 적용하려고 했으나

import type { TabNavigationState, ParamListBase } from '@react-navigation/native';

위 코드에서 '"@react-navigation/native"' 모듈에 내보낸 멤버 'ParamListBase'이(가) 없습니다.ts(2305)ParamListBase를 불러오지 못해서 우선 타입스크립트 적용하지 않고 아래 코드와 같이 테스트했습니다.

import { withLayoutContext } from 'expo-router';
import { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs';
import { Text, View } from 'react-native';
import { useSafeAreaInsets } from 'react-native-safe-area-context';

const { Navigator } = createMaterialTopTabNavigator();
export const MaterialTopTabs = withLayoutContext(Navigator);

const GitCallbackLayout = () => {
  const insets = useSafeAreaInsets();

  return (
    <View style={{ paddingTop: insets.top }}>
      <Text>Callback Layout</Text>
      <MaterialTopTabs>
        <MaterialTopTabs.Screen name="index" options={{ title: 'GitHub' }} />
        <MaterialTopTabs.Screen name="gitlab" options={{ title: 'GitLab' }} />
        <MaterialTopTabs.Screen name="bitbucket" options={{ title: 'Bitbucket' }} />
        <MaterialTopTabs.Screen name="devops" options={{ title: 'DevOps' }} />
      </MaterialTopTabs>
    </View>
  );
};

export default GitCallbackLayout;


폴더 구조는 아래와 같고 index, gitlab, devops, bitbucket 컴포넌트는 모두 default export 돼있는 상태입니다.

image.png

이 상태에서 페이지에 /settings/manage-git/verify 경로로 접근하면

 ERROR  [TypeError: Cannot read property 'find' of undefined] 

Code: _layout.tsx
  31 |     <View style={{ paddingTop: insets.top }}>
  32 |       <Text>Callback Layout</Text>
> 33 |       <MaterialTopTabs>
     |       ^
  34 |         <MaterialTopTabs.Screen name="index" options={{ title: 'GitHub' }} />
  35 |         <MaterialTopTabs.Screen name="gitlab" options={{ title: 'GitLab' }} />
  36 |         <MaterialTopTabs.Screen name="bitbucket" options={{ title: 'Bitbucket' }} />

이렇게 에러가 나는 상황인데,, 계속 해결이 안되네요ㅠ 어떤 문제인지 아시면 도움 부탁드려요

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

제 강의와 라이브러리 버전이 다른 것 같습니다. 버전 확인해보시겠어요?

이영훈님의 프로필 이미지
이영훈
질문자

"expo": "54.0.13",
"react-native": "0.81.4",
"react": "19.1.0",
"react-dom": "19.1.0",
"@react-navigation/native": "^7.1.8",
"@react-navigation/material-top-tabs": "^7.4.1",
"react-native-pager-view": "6.9.1",

앗 까먹고 버전을 안적었네요 제 버전은 이렇습니다!

 

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

expo 54 버전랑 최신 리액트내비게이션에 대해서는 테스트를 해보지 않아서 저도 체크를 해봐야겠습니다.

이영훈님의 프로필 이미지
이영훈
질문자

공식문서 따라서 이것저것 시도해봤는데 잘 안되네요 넵 알겠습니다!

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

저는 7.1.19 버전 쓰고 있는데 에러가 안 납니다..!

 

이영훈님의 프로필 이미지
이영훈

작성한 질문수

질문하기