간단한 과제-typescript 관련 내용 정리
팀프로젝트
어제 주석으로 따로 메모장에 남긴 부분 – firebase의 friends-자신의 id-friendList에서 친구의 id와 문서들 중 fid 값이 같은 문서의 id값을 배열에 저장하는 함수
오늘 만든 부분 – checkbox의 value가 true가 될 때 배열에 추가, value가 false가 될 때 배열에서 삭제되는 부분
다시 적어보는 친구 부분 삭제의 순서
- 친구 목록 중 checkbox로 체크된 친구의 id값을 배열에 담는다
- 배열에 담긴 친구의 id값과 firebase의 저장공간에서 같은 값이 있는 문서의 id를 찾아서 배열에 담는다
- 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()}
조금 에러가 나는 부분이 있어 보여서 계속해서 건드려봐야 할 것 같다