찾다

 >  Q&A  >  본문

useEffect가 완료되기 전에 실행할 함수

다음 코드가 있습니다:

으아아아

문제는 let chatProps = useMultiChatLogic('xxxx-xx-x-xx-xxx', username, Secret);useEffect가 완료되기 전에 실행된다는 것입니다. 나는 그것을 .then 내부로 옮기려고 시도했지만 후크 오류와 다른 것들이 발생했지만 아무것도 작동하지 않았습니다.

P粉916760429P粉916760429230일 전467

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

  • P粉983021177

    P粉9830211772024-04-02 00:44:59

    React에 대한 기본적인 이해가 부족한 것 같습니다. 상태, useEffect 및 일반 제어 흐름에 대한 이 튜토리얼을 확인하세요.

    useEffect 是异步的——首次渲染后以及每当设置依赖项数组中捕获的变量时,React 都会执行回调。您的依赖项数组为空,因此此 useEffect는 비동기식입니다. React는 첫 번째 렌더링 후 그리고 종속성 배열에 캡처된 변수가 설정될 때마다 콜백을 실행합니다. 종속성 배열이 비어 있으므로 이

    는 구성 요소의 수명 주기에서(첫 번째 렌더링 후) 한 번 실행됩니다.

    Multi가 무엇인지는 모르지만 다음과 같이 시도해 볼 수 있습니다.

    으아아아 usernamesecret 仍然是默认的空字符串,因此我们渲染一条加载消息。渲染后,useEffect여기서 첫 번째 렌더링에서는 usernamesecret이 여전히 기본 빈 문자열이기 때문에 요청이 아직 완료되지 않았음을 알고 로딩 메시지를 렌더링합니다. 렌더링 후

    가 실행되어 요청을 시작합니다.

    usernamesecret 设置状态,这会触发另一个渲染。在此渲染上,响应中的 usernamesecret 值可用(我假设它们保证在响应中为非空字符串),因此不会渲染加载消息。相反,我们渲染 ChatsPage잠시 후 응답이 도착하고 응답 데이터와 함께 props를 받아들이는

    컴포넌트가 있습니다.

    useMultiChatLogic 这样的钩子 必须在任何条件之上声明< /a>.如果这不是一个钩子,那么调用可以发生在 if추가 구성요소는

    이후 구성요소 기능 본체에 추가 구성요소가 필요하지 않기 때문에 필요합니다.

    setState 来完成,而不是 =React의 황금률은 상태가 불변이라는 것입니다. 따라서 한 렌더링에서 다음 렌더링으로 데이터가 변경되면 통과해야 합니다

    . 🎜

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