Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자바문제풀이
- react
- JavaScript
- frontend
- max-width
- node.js
- java
- cleancode
- coding
- webpack
- 코드업
- TypeScript
- react-router-dom
- 변수
- JS
- Servlet
- 코딩테스트
- redux
- 자바
- @media
- media query
- CSS
- node
- 반응형 페이지
- git
- HTML
- 프론트엔드
- github
- 그럼에도불구하고
- 그럼에도 불구하고
Archives
- Today
- Total
그럼에도 불구하고
[Router] useNavigation과 useSubmit 본문
useNavigation과 useSubmit에 대해 알아보겠습니다.
[ useNavigation ]
useNavigation은 useNavigate와는 다릅니다. 헷갈리면 안 됩니다. :)
예를 들어, useNavigation은 어떤 폼을 작성해서 제출하는데 현재 진행 상황을 저장하는 것과 같을 경우 사용하기에 좋습니다.
즉, 현재 폼에 대한 정보를 받을 수 있습니다.
1 2 3 | const navigation = useNavigation() const isSubmitting = navigation.state === 'submitting' | cs |
폼 제출 시 true를 받는 상수를 선언 후
1 2 3 | <button disabled={isSubmitting}> {isSubmitting ? "Submitting..." : "Save"} </button> | cs |
return에서 조건적으로 받아보면 폼이 제출 중일 때는 버튼이 Submitting...로 바뀝니다.
혹은 data를 넘기기 위해서 useNavigation을 이용할 수 있습니다.
1 2 3 | const navigation = useNavigation(); navigation(component명, {보내고 싶은 데이터 : 내용 }); | cs |
[ useSubmit ]
useSubmit을 사용하여 양식 내에서 값이 변경될 떄마다 양식을 제출할 수 있습니다.
1 | useSubmit({내가 제출하려는 데이터},{Form에 }) | cs |
인자로 2개를 넣는데, 첫번째 인자에는 우리가 제출하려는 데이터를 넣고, 두 번째 인자에는 우리가 Form에 설정할 수 있는 것과 기본적으로 같은 값들을 설정할 수 있게 합니다.
예를 들어, method: delete, action: '/...' 과 같이 설정할 수 있습니다.
1 2 3 4 5 6 7 8 9 | const submit = useSubmit(); function startDeleteHandler() { const proceed = window.confirm('Are you sure?'); if (proceed) { submit(null, { method: 'delete'}); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | export async function action({ params, request }) { const eventId = params.eventId; const response = await fetch('http://localhost:8080/events/' + eventId, { method: request.method, }); if (!response.ok) { throw json( { message: 'Could not delete event.' }, { status: 500, } ); } return redirect('/events'); } | cs |
'React > Router' 카테고리의 다른 글
[Router] useFetcher (0) | 2023.06.12 |
---|---|
[Router] action과 Form, useActionData 그리고 redirect (0) | 2023.06.12 |
[Router] loader의 error 처리 with useRouterError & json (0) | 2023.06.10 |
[Router] loader와 useLoaderData (0) | 2023.06.10 |
[Router] useParams 사용하기 (0) | 2023.06.10 |
Comments