React에서 React Router를 사용하여 경로 변경을 감지하는 방법은 무엇입니까?

내 애플리케이션에 전역 적으로 적용되는 검색 구성 요소가 있으며 검색 결과를 맨 위에 표시합니다. 사용자가 검색 결과를 클릭하거나 브라우저의 뒤로 버튼을 사용하는 등 모든 종류의 탐색 을 수행하면 검색을 재설정하고 싶습니다. 결과 및 검색 입력 필드를 지 웁니다 .

현재 나는 이것을 처리하고있다 Context; 함수 SearchContext.Provider를 브로드 캐스트하는 이 있고 resetSearch탐색을 처리 할 때마다 탐색 resetSearch을 처리하기 전에 호출하는 소비자가 있습니다 ( useHistory후크를 사용하여 프로그래밍 방식으로 수행 ).

이것은 브라우저의 컨트롤에서 뒤로 버튼을 누를 때 작동하지 않습니다 (내 컨트롤에서 벗어난 것이므로).

RoutesresetSearch함수가 호출 되는지 확인하기 위해 연결할 수 있는 중간 단계 가 렌더링 (또는 브라우저 탐색 발생) 전에 있습니까?

요청한대로 코드는 다음과 같습니다.

// App.js
const [query, setQuery] = useState("");
const [results, setResults] = useState([]);

const resetSearch = () => {
    setResults([]);
    setQuery("");
};

<SearchContext.Provider value={{ resetSearch }}>
    // all of my <Route /> components in this block
</SearchContext.Provider>
// BusRoute.js
const { resetSearch } = useContext(SearchContext);

const handleClick = stop => {
    resetSearch();
    history.push(`/stops/${stop}`);
};

return (
    // some other JSX
    <button onClick={() => handleClick(stop.code)}>{stop.name}</button>
);
아지트 샤

history변경 사항을 들을 수 있습니다 .

useEffect(() => {
  const unlisten = history.listen((location) => {
    console.log('new location: ', location)
    // do your magic things here
    // reset the search: clear the results and the search input field
  })
  return function cleanup() {
    unlisten()
  }
}, [])

전역 검색 값을 제어하는 ​​상위 구성 요소에서이 효과를 사용할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

react-router-dom에서 URL 경로를 변경하는 방법은 무엇입니까?

분류에서Dev

사용자가 react-router-dom에서 뒤로 버튼을 클릭 할 때 구성 요소의 상태를 변경하는 방법은 무엇입니까?

분류에서Dev

React Router v4에서 버튼 클릭으로 경로를 탐색하는 방법은 무엇입니까?

분류에서Dev

React에서 지연 후 useEffect에서 조건부로 상태를 변경하는 방법은 무엇입니까?

분류에서Dev

react-router-dom을 사용하여 구성 요소를 렌더링하는 경로를 추가하는 방법은 무엇입니까?

분류에서Dev

React에서 z 인덱스를 변경하는 방법은 무엇입니까?

분류에서Dev

React Context API를 사용하여 여러 경로에서 상태를 유지하는 방법은 무엇입니까?

분류에서Dev

React-bootstrap을 찾기 위해 경로를 변경하는 방법은 무엇입니까?

분류에서Dev

React Hooks로 여러 항목을 변경하는 방법은 무엇입니까?

분류에서Dev

UWP에서 VisualStateManager를 사용하여 피벗을 ScrollViewer로 변경하는 방법은 무엇입니까?

분류에서Dev

Aurelia에서 JQuery UI datepicker를 사용하여 로케일을 변경하는 방법은 무엇입니까?

분류에서Dev

dplyr을 사용하여 패널 데이터에서 시간 경과에 따른 변수의 변화를 감지하는 방법은 무엇입니까?

분류에서Dev

useEffect ()로 React-Hook-Form defaultValue를 변경하는 방법은 무엇입니까?

분류에서Dev

react + webpack을 사용할 때 절대 경로를 사용하여 사용자 지정 scss를 가져 오는 방법은 무엇입니까?

분류에서Dev

Material UI Drawer와 함께 React Router를 사용하여 클릭시 콘텐츠를 변경하는 방법은 무엇입니까?

분류에서Dev

create-react-app으로 만든 앱에서 환경 변수를 설정하는 방법은 무엇입니까?

분류에서Dev

xaml에서 트리거를 사용하여 tabitem의 배경을 변경하는 방법은 무엇입니까?

분류에서Dev

Vue를 사용하여 API 엔드 포인트에서 자동으로 변경 사항을 감시하는 방법은 무엇입니까?

분류에서Dev

값 변경 리스너를 사용하여 JSF 페이지에서 로케일을 변경하는 방법은 무엇입니까?

분류에서Dev

React에서 경로의 우선 순위를 지정하는 방법은 무엇입니까?

분류에서Dev

React 및 Gatsby.js에서 use-sound 사용-경로 변경시 오디오 재생을 중지하는 방법은 무엇입니까?

분류에서Dev

PHP를 사용하여 이동 경로에서 "›또는 lrm"을 사용하는 방법은 무엇입니까?

분류에서Dev

React Native 하단 탭에서 화면 버튼을 조건부로 변경하는 방법은 무엇입니까?

분류에서Dev

링크에서 도메인을 변경하지만 경로를 유지하는 방법은 무엇입니까?

분류에서Dev

Angular 1.5 구성 요소 라우터에서 경로 변경을 감지하는 방법은 무엇입니까?

분류에서Dev

React Router를 사용하여 로그인 상태를 처리하는 방법은 무엇입니까?

분류에서Dev

Shiny에서 Javascript를 사용하여 볼륨을 변경하는 방법은 무엇입니까?

분류에서Dev

TypeScript를 사용하여 CSS에서 값을 변경하는 방법은 무엇입니까?

분류에서Dev

gVim을 사용하여 외부에서 변경된 버퍼를 확인하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    react-router-dom에서 URL 경로를 변경하는 방법은 무엇입니까?

  2. 2

    사용자가 react-router-dom에서 뒤로 버튼을 클릭 할 때 구성 요소의 상태를 변경하는 방법은 무엇입니까?

  3. 3

    React Router v4에서 버튼 클릭으로 경로를 탐색하는 방법은 무엇입니까?

  4. 4

    React에서 지연 후 useEffect에서 조건부로 상태를 변경하는 방법은 무엇입니까?

  5. 5

    react-router-dom을 사용하여 구성 요소를 렌더링하는 경로를 추가하는 방법은 무엇입니까?

  6. 6

    React에서 z 인덱스를 변경하는 방법은 무엇입니까?

  7. 7

    React Context API를 사용하여 여러 경로에서 상태를 유지하는 방법은 무엇입니까?

  8. 8

    React-bootstrap을 찾기 위해 경로를 변경하는 방법은 무엇입니까?

  9. 9

    React Hooks로 여러 항목을 변경하는 방법은 무엇입니까?

  10. 10

    UWP에서 VisualStateManager를 사용하여 피벗을 ScrollViewer로 변경하는 방법은 무엇입니까?

  11. 11

    Aurelia에서 JQuery UI datepicker를 사용하여 로케일을 변경하는 방법은 무엇입니까?

  12. 12

    dplyr을 사용하여 패널 데이터에서 시간 경과에 따른 변수의 변화를 감지하는 방법은 무엇입니까?

  13. 13

    useEffect ()로 React-Hook-Form defaultValue를 변경하는 방법은 무엇입니까?

  14. 14

    react + webpack을 사용할 때 절대 경로를 사용하여 사용자 지정 scss를 가져 오는 방법은 무엇입니까?

  15. 15

    Material UI Drawer와 함께 React Router를 사용하여 클릭시 콘텐츠를 변경하는 방법은 무엇입니까?

  16. 16

    create-react-app으로 만든 앱에서 환경 변수를 설정하는 방법은 무엇입니까?

  17. 17

    xaml에서 트리거를 사용하여 tabitem의 배경을 변경하는 방법은 무엇입니까?

  18. 18

    Vue를 사용하여 API 엔드 포인트에서 자동으로 변경 사항을 감시하는 방법은 무엇입니까?

  19. 19

    값 변경 리스너를 사용하여 JSF 페이지에서 로케일을 변경하는 방법은 무엇입니까?

  20. 20

    React에서 경로의 우선 순위를 지정하는 방법은 무엇입니까?

  21. 21

    React 및 Gatsby.js에서 use-sound 사용-경로 변경시 오디오 재생을 중지하는 방법은 무엇입니까?

  22. 22

    PHP를 사용하여 이동 경로에서 "›또는 lrm"을 사용하는 방법은 무엇입니까?

  23. 23

    React Native 하단 탭에서 화면 버튼을 조건부로 변경하는 방법은 무엇입니까?

  24. 24

    링크에서 도메인을 변경하지만 경로를 유지하는 방법은 무엇입니까?

  25. 25

    Angular 1.5 구성 요소 라우터에서 경로 변경을 감지하는 방법은 무엇입니까?

  26. 26

    React Router를 사용하여 로그인 상태를 처리하는 방법은 무엇입니까?

  27. 27

    Shiny에서 Javascript를 사용하여 볼륨을 변경하는 방법은 무엇입니까?

  28. 28

    TypeScript를 사용하여 CSS에서 값을 변경하는 방법은 무엇입니까?

  29. 29

    gVim을 사용하여 외부에서 변경된 버퍼를 확인하는 방법은 무엇입니까?

뜨겁다태그

보관