ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [23.01.11] TIL
    TIL 2023. 1. 12. 14:59

    그동안 코로나로 TIL,WIL을 작성하지 못했다.

    어제까지 격리로 아무데도 못가고 집에서 골골 앓았는데 프로젝트는 팀끼리 하는거라.. 피해 끼칠까봐 어떻게든 마무리하려고 했다.

    그래서 오늘 update는 거의 완성했는데 한가지 문제만 해결하면 된다.

     

    글 수정하기를 누르고 수정완료버튼을 누르지 않고 Navigator를 이용해 뒤로가기를 진행하게되면,

    isEdit이 그대로 true 상태로 남아있다.

    이렇게 되면 해당 글을 클릭해 상세페이지로 진입하게 됐을 때, 글을 볼 수 있는게 아니라 수정할 수 있는 화면이 보인다는게 문제이다.

    알아 본 결과, Navigator가 항상 이전 페이지를 기억하고있지는 않는다고 하는데, 그럼 어떻게 해결을 했느냐.

     

    1. Detail 페이지에서 Navigator의 setOptions를 이용해 이전 페이지로 이동할 수 있는 기능을 추가로 줬다.

    useEffect(() => {
        navigation.setOptions({
          headerLeft: () => {
            return (
              <TouchableOpacity onPress={() => navigation.goBack()}>
                <BtTitle>← 뒤로</BtTitle>
              </TouchableOpacity>
            );
          },
        });
      }, []);

     

    2. Detail 페이지에서 삼항연산자를 통해 isEdit이 true일 때 인풋태그로 바뀌게 ui를 짜줬는데, Edit 페이지를 하나 만들어서 분리해줬다.

     

    이렇게 하니 이 문제는 해결이 됐다.

    근데 또 다른 문제가 생겼다..

    하.. 하나 고치면 하나 생기고.. 그거 고치면 또 다른 에러가 생기고.. 에러의 덫인가....

    데이터를 불러오려는데 갑자기 불러오려는 데이터가 object가 아니란다.

    아니씨.. 왜이러는데 나한테 ㅠㅠㅠㅠ

    에러가 나는 이유는 이랬다.

    처음 js가 코드를 읽을 때, useEffect같은 것들은 빼고 일단 한번 읽고, 그 뒤에 읽을 때 나머지를 다 읽는다고 했다.

    그러다보니 word라는 데이터 자체를 못읽어서 그렇다는 것,

    이것은 옵셔널체이닝 (?) 으로 해결했다.

    		<Section>
              <Title>단어</Title>
              <TextBox>
                <Text>{word?.word}</Text>
              </TextBox>
            </Section>
            <Section>
              <Title>의미</Title>
              <TextBox>
                <Text>{word?.mean}</Text>
              </TextBox>
            </Section>
            <Section>
              <Title>TMI</Title>
              <TextBox>
                <Text>{word?.tmi}</Text>
              </TextBox>
            </Section>

    이렇게 해주니 잘 읽어왔다..

     

    어렵다 어려워... ㅠㅠㅠ

    'TIL' 카테고리의 다른 글

    [23.02.06] TIL 최종 프로젝트 시작  (0) 2023.02.07
    [23.01.12] TIL  (1) 2023.01.12
    [23.01.03] TIL  (0) 2023.01.03
    [23.01.02] TIL  (0) 2023.01.02
    [22.12.30] TIL  (1) 2022.12.31
Designed by Tistory.