찾다

 >  Q&A  >  본문

useState setter 함수를 React의 전역 범위에 노출

이런 일을 할 수 있을지 궁금합니다:

으아악

뭔 이유인지 외부에서 호출하면 setPanelActive 函数时,useEffect가 실행되지 않습니다.

일종의 래퍼나 컨텍스트를 만들어야 하나요? 이를 작동하게 하는 공급자?

P粉299174094P粉299174094505일 전891

모든 응답(2)나는 대답할 것이다

  • P粉587970021

    P粉5879700212023-09-12 09:11:45

    globalThis.setPanelActive 与您正在执行的分配中的 setPanelActive 동일하게 작동할 것으로 기대했다면 틀린 것입니다. 후크는 구성 요소 범위 내에서 작동하도록 설계되었으며, 이 경우 다음과 같이 더 높은 수준에서 context를 사용해야 합니다.

    으아악 으아악

    이제 모든 구성 요소에서 setPanelActive 时,useEffect를 사용하면

    가 트리거됩니다.

    회신하다
    0
  • P粉333186285

    P粉3331862852023-09-12 00:33:05

    참여해주신 모든 분들께 감사드립니다. @hatana님이 언급한 내용을 조사한 후 @hatana라는 해결책을 찾았습니다. com/DawChihLiou/eventbus-demo" rel="nofollow noreferrer">이벤트 버스 . 정확히 내가 원했던 기능을 수행합니다.

    회신하다
    0
  • 취소회신하다