인프런 커뮤니티 질문&답변
글 작성 성공 후 해당 글 ID로 라우팅변경관련 문의
작성
·
170
0
안녕하세요. 항상 좋은 컨텐츠로 강의해주셔서 감사히 잘 보고 있습니다.
라우팅을 어떤 방식으로 전개할지 잘 와닿지 않아서 문의드립니다. ㅠ
상황을 설명드리면...
1) `localhost:3000/post` 여기서 포스트 작성을 합니다.
2) 그래서 작성후에 저장이 되면 `localhost:3000/post/id`
이쪽으로 라우팅을 하려고 하는데요. 어떤식으로 라우팅을 트랜지션해야할지 잘 모르겠어서요.
상태는 리덕스 스토어를 사용하고 있습니다.
3) 저장 시 성공하면 백엔드쪽에서 포스트 정보랑 id를 json으로 넘겨줍니다.
예)
아래같이 코드가 있다고 가정하면 onSubmitHandler 함수 내부에 하고 싶은데 이렇게 되면 일단 클릭시 id도 없고 저장시까지 걸리는 핸들링이 유보되는것두 아니고 해서 이방법으로는 안되는거 같아서요.
구글로 how to route transition after saving data on react 등등으로 검색 했는데 결과가 신통치 않아요.ㅠ
useEffect내부에 해야 하는건가요? 아니면 다른 방식으로 진행해야하나요?
const onSubmitHandler = useCallback(() => {
//...
}, [inputValue, editValue, mainPost])
// useEffect(() => {
// if (mainPost && mainPost.id) {
// router.push(`/post/${mainPost.id}`)
// }
// }, [mainPost])
return (
<Container onSubmit={onSubmitHandler}>
<LabelInput
label="제목"
inputValue={inputValue}
onChange={onChangeInput}
/>
<Editor
initialValue="hello react editor world!"
previewStyle="vertical"
height="600px"
initialEditType="markdown"
useCommandShortcut={true}
ref={editorRef}
onChange={onChangeEditValue}
/>
<button type="submit">
저장
</button>
</Container>
)





답변감사드려요~ 그럼 제가 저기 위에 useEffect 주석한것같은 방식으로 해야되겠네요~ 그런데 저 방식으로 했을 때는 뒤로가기하면 /post -> /post/id 로 계속 리다이렉션 되던데
만약 success done 상태를 기준으로 useEffect에서 라우팅을 한다면 라우팅 직전에 success done을 null 이나 다른걸로 다시 변경해주는 방식으로 해야겠네요 맞을까요??