찾다

 >  Q&A  >  본문

将useEffect의 종속성으로 배열 포함

5초마다 긴 폴링에서 일부 데이터가 들어오고 있으며 배열 항목(또는 배열 길이 자체)이 변경될 때마다 내 구성 요소가 작업을 전달하도록 하고 싶습니다. 배열을 종속성으로 전달할 때 useEffect가 무한 루프에 빠지는 것을 방지하면서도 값이 변경되면 일부 작업을 예약하려면 어떻게 해야 합니까?

으아악

여기서 outcomes 是一个 ID 数组,例如 [123, 234, 3212]。数组中的项目可能会被替换或删除,因此数组的总长度可能(但不一定)保持不变,因此传递 outcomes.length 종속성은 그렇지 않습니다.

outcomes 재선택의 사용자 정의 선택기:

으아악


P粉748218846P粉748218846404일 전578

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

  • P粉464208937

    P粉4642089372023-10-18 15:49:11

    JSON.stringify() 또는 심층 비교 방법을 사용하는 것은 덜 효율적일 수 있습니다. 객체의 모양을 미리 알고 있다면 결과에 따라 사용자 정의 동등 함수에 대한 콜백을 트리거하는 자체 효과 후크를 작성할 수 있습니다.

    useEffect 的工作原理是检查依赖项数组中的每个值是否与前一渲染中的值相同,如果其中一个不是,则执行回调。因此,我们只需要使用 useRef 保留我们感兴趣的数据实例,并且仅在自定义相等性检查返回 false 효과를 트리거하려면 새 인스턴스를 할당하세요.

    으아악

    사용법

    응응; }

    한 단계 더 나아가 사용자 정의 동등 기능을 허용하는 효과 후크를 생성하여 이 후크를 재사용할 수도 있습니다.

    으아악

    사용법

    으아악

    실시간 시연

    회신하다
    0
  • P粉662802882

    P粉6628028822023-10-18 12:32:21

    종속성 목록으로 JSON.stringify(outcomes)를 전달할 수 있습니다.

    자세한 내용은 여기

    에서 알아보세요. 으아악

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