항해99/매일 기록

항해 99 - 2022.02.14.MON (삭제 기능)

<zinny/> 2022. 2. 16. 11:45
728x90

이번 챕터 일정

  • 02/11 (금) 19:00 까지 : S.A. 제출 완료✅
  • 02/12 (토) 오전 : S.A. 서면 피드백 확인✅
    • 백엔드 스코프가 너무 좁다고 하심
    • 기능이 좀더 추가 되어야 할듯
  • 02/14 (월) 저녁 : 팀별 프로젝트 중간 멘토링✅
  • 02/17 (목) 저녁 : 팀별 프로젝트 회고 멘토링
  • 02/18 (금) 09:00 : 클론코딩 주차 발제

오늘 내가 할 일 

  • 삭제 기능 구현 ✅
  • 디테일 페이지 뷰 작업 및 데이터 가져오기 ✅
  • 알고리즘 문제풀고 정리 ✅
디테일 페이지에 인풋 값에 값을 받아오고 싶은데
그냥 일단 데이터만 받아와서 넣어주는 방식으로 디테일 페이지를 구현했다. 
오늘 알고리즘 문제는 생각보다 빨리 풀려서 너무 좋은 하루 
삭제 기능은 그냥 개별 아이디를 지워주는 방식으로 진행했다. 

 

/post.js

//액션 함수 
const DELETE_POST = "DELETE_POST";

//액션 생성 함수 
const deletePost = createAction(DELETE_POST, (post_index) => ({ post_index }))

//미들웨어
const deletePostFB =(post_id=null)=>{
    return function(dispatch, getState,{history}){
        const _post_idx = getState().post.list.findIndex((p)=>p.post_id===post_id)
        instance.delete(`/api/getpost/delete/${post_id}`,{},)
        .then(function(response){
            console.log(response)
            dispatch(deletePost(_post_idx))
            window.location.reload()
        }).catch((error) => {
            console.error("Error removing document: ", error);
        });
    }
}

//리듀서
export default handleActions(
    {
        [EDIT_POST]: (state, action) => produce(state, (draft) => {
            let idx = draft.list.findIndex((p) => p.post_id === action.payload.post_id)
            draft.list[idx] = { ...draft.list[idx], ...action.payload.post }
        })
    },
    initialState
)

 

/Post.js

<Button padding ="5%"
_onClick={()=>{dispatch(postActions.deletePostFB(props.post_id))}} 
text="삭제"/>

 

728x90