우리는 커미션 신청을 채팅으로 하도록 설계를 했다.

하지만 정작 채팅을 구현하지 못했고 신청폼은 있으나 채팅이 없어졌으니 확인할 수 있는 방법이 없어졌다.

따라서 FormPage를 만들어야했다.

우선

getTradeFetch.js

export const getTradeFn = (id) => {
  const [trades, setTrades] = useState(null);
  const [loading, setLoading] = useState(true);
  const [member, setMember] = useState(null);

  useEffect(() => {
    const fetch = async () => {
      const { data, status } = await getTrade(id);
      if (status < 300) {
        setTrades(data);
        const memberData = await getUserInfo(data.memberId);
        if (memberData.status < 300) {
          setMember(memberData.data.data);
          setLoading(false);
        }
      }
    };
    fetch();
  }, [setTrades, setMember, setLoading]);
  return { trades, member, loading };
};

라는 커스텀 훅을 만들었다.

원래는 getTrade만 사용해서 id로 trade의 data를 가져오도록 하기만 하면 되는데 정작 신청자의 data는 id 밖에 들어있지 않아서 다시 getUserInfo를 통해 memberId로 member의 정보를 가져와야 했다.

댓글남기기