P粉1569834462023-09-02 00:17:20
이 중간 기능이 문제인 것 같습니다:
으아악 useState
返回的状态设置函数本身不会在每次渲染时重新创建,但通过此外部函数调用它似乎会破坏这一点。这导致依赖项发生变化,如 useEffect
종속성 배열에 의해 관찰됩니다.
이것이 필요하지 않은 경우 usePage
函数(在示例中您不需要,但在更大的上下文中可能存在有意义的情况),那么只需将其完全删除并使用直接useState
:
일반적으로 함수 내에서 후크를 호출하고 싶지 않은 이유는 후크가 모든 렌더링에서 일관되고 동일한 순서로 호출되어야 한다는 규칙을 쉽고 빠르게 위반할 수 있기 때문입니다. 따라서 구성 요소 자체의 본문(및 구성 요소 논리 초기)에서 후크 호출을 유지하는 것이 가장 좋습니다.
가끔 정말로 매우 유사하게 작동하는 사용자 정의 기능을 useEffect
中的依赖项。由于声明的函数在每次渲染时都会重新声明,因此您会遇到上面遇到的问题。为了解决这个问题,您可以将该函数包装在 useCallback
挂钩中,该挂钩本身也有一个依赖项数组,与 useEffect
원하는 상황이 있습니다. 이 후크의 목적은 React가 렌더링 전반에 걸쳐 단일 함수 인스턴스로 캐시할 수 있는 사용자 정의 함수를 생성하는 것입니다(종속성이 변경되지 않는 한). 예: