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

이태광님의 프로필 이미지
이태광

작성한 질문수

처음 배우는 리액트 네이티브

강의중에 실제프로젝트 강의중에 맨마지막 20분짜리 전 강의에서요.

작성

·

248

0

제가 강의를 보다가 에러 나는 부분이 있어서 올려 봅니다.

파이어베이스에 id 컬럼이 빠져서 맨마지막 강의에 20분 전 강의에서 에러가 나서 파이어베이스에서 컬럼에 id를 추가를 해서 해결을 했습니다.

빠트리신거 같아서 적어 보냅니다.

그리고 가끔 보면요..

Setting a timer for a long period of time, i.e. multiple minutes, is a performance and correctness issue on Android as it keeps the timer module awake, and timers can only be called when the app is in the foreground. See https://github.com/facebook/react-native/issues/12981 for more info. (Saw setTimeout with duration 2694051ms)

이런 경고 문구가 보이던데, 왜 그런 건가요 ?

답변 3

0

김범준님의 프로필 이미지
김범준
지식공유자

안녕하세요 이태광님, 

  

Chat App - Part 2 의 4번째 강의인 "채널 생성 화면" 강의에서 
09:40 ~ 10:30  사이에 파이어베이스 콘솔에서 수동으로 추가한 채널에 id 필드가 없습니다. 
이 데이터 때문에 에러가 발생한듯 합니다. 

  

이 데이터는 동일한 강의 16:48 ~ 16:58 에서 제거하는 부분이 나옵니다. 
데이터 필드에 차이가 있어서 삭제를 했었는데, 
자세한 설명 없이 그냥 삭제해서 약간의 혼란이 있었던것 같습니다. 

  

만약 테스트를 위해 추가한 데이터를 잘 삭제했고, 
13:02 ~ 13:55에서 진행하는 채널 생성 함수(createChannel)를 잘 만드셨다면, 
문제없이 동작할것이라 생각합니다. 

  

강의에서 문제가 생길수 있는 부분에 대해 알려주셔서 감사합니다. 
강의를 진행하는데 혼란을 드려 죄송합니다. 

  

즐거운 하루 되세요 

감사합니다. 

0

이태광님의 프로필 이미지
이태광
질문자

소스코드에는 ChannelList.js 에서요..

return (
        <Container>
            <FlatList
                data={channels}
                renderItem={({ item }) => <Item item={item}
                    onPress={params => navigation.navigate('Channel'params)}
                />}
                keyExtractor={item => item['id'].toString()}
                windowSize={5} // windowSize로 랜더링 되는 사이즈를 줄일수 있다. 숫자로 조절 가능.
            />
        </Container>
   );
이 부분에 item['id'].toString() 이게 없다고 에러가 났었 거든요..
그래서 파이어베이스에 데이터베이스에 보니깐 id 컬럼이 없더라구요..
그래서 그걸 추가 하니깐 해결이 되기는 햇는데, 강의내용에는 id 컬럼을 추가를 하는 부분이 나오지
않은거 같아서 제가 문의를 드린 겁니다.
답변 감사합니다 . ㅎㅎㅎ
김범준님의 프로필 이미지
김범준
지식공유자

안녕하세요 이태광님, 

자세한 설명 감사합니다. 확인해 보도록 하겠습니다. 

0

김범준님의 프로필 이미지
김범준
지식공유자

안녕하세요 이태광님, 

  

정확하게 어떤 부분에서 문제가 발생했는지 알려주시면 감사하겠습니다. 

현재 코드에서 실행시 문제가 되는 부분을 발견하지 못했는데, 

영상 시간과 함께 알려주시면 감사하겠습니다. 

  

마지막에 적어주신 경고 문구는 안드로이드에서 발생하는 문제로, 

node_modules/react-native/Libraries/Core/Timers/JSTimers.js 파일에서

60 * 1000 으로 되어 있는 MAX_TIMER_DURATION_MS 라는 값을 큰 값으로 변경하면 해결됩니다.

  

감사합니다. 

이태광님의 프로필 이미지
이태광

작성한 질문수

질문하기