06/20-1

Posted by:

|

On:

|

간단한 과제-typescript 관련 내용 정리

팀프로젝트

어제 주석으로 따로 메모장에 남긴 부분 – firebase의 friends-자신의 id-friendList에서 친구의 id와 문서들 중 fid 값이 같은 문서의 id값을 배열에 저장하는 함수

오늘 만든 부분 – checkbox의 value가 true가 될 때 배열에 추가, value가 false가 될 때 배열에서 삭제되는 부분

다시 적어보는 친구 부분 삭제의 순서

  1. 친구 목록 중 checkbox로 체크된 친구의 id값을 배열에 담는다
  2. 배열에 담긴 친구의 id값과 firebase의 저장공간에서 같은 값이 있는 문서의 id를 찾아서 배열에 담는다
  3. 2번의 만든 배열을 이용해 관련 친구 문서를 삭제한다

3번인 친구 문서 삭제 내용

const deleteFriend=async()=>{
for(let i=0;i<dataarray.length;i++){
await deleteDoc(doc(db,"/friends/자신의id/friendList",dataarray[i]))}};

2번째 내용인 친구의 id값을 이용해 해당 문서의 id가 담긴 배열을 만드는 구간

const [dataarray,setDataarray]=useState([]);
const onsearch2=async()=>{
for(let i=0;i<examplearray.length;i++){
const q=query(collection(db,"/friends/자신의id/friendList"),where("fid","==",examplearray[i]))
const querySnapshot=await getDocs(q);
let dataarray2=[];
querySnapshot.forEach((doc)=>dataarray2.push(doc.id)})
setDataarray(dataarray2);}}

1번째 내용인 친구목록 중 checkbox로 체크된 친구의 id값을 담는 구간

const [examplearray,setExamplearray]=useState([]);
const [arrayvalue,setArrayvalue]=useState(false);
const addbox=(id)=>{
setArrayvalue(true);
let arrayval=[];
setExamplearray(arrayval.concat(id));};
const deletevbox=(id)=>{
setArrayvalue(false);
setExamplearray(examplearray.filter((e)=>e!==id))};

useEffect로 arrayvalue값이 바뀔때마다 onsearch2를 실행

useEffect(()=>onsearch2,[arrayvalue])

checkbox에 들어가는 이벤트

onClick={()=>!arrayvalue?addbox(friend.fid):deletebox(friend.fid)}

친구삭제 버튼에 들어가는 이벤트

onClick={()=>deleteFriend()}

조금 에러가 나는 부분이 있어 보여서 계속해서 건드려봐야 할 것 같다