문제는 let chatProps = useMultiChatLogic('xxxx-xx-x-xx-xxx', username, Secret); 在 useEffect가 완료되기 전에 실행된다는 것입니다. 나는 그것을 .then 내부로 옮기려고 시도했지만 후크 오류와 다른 것들이 발생했지만 아무것도 작동하지 않았습니다.
React에 대한 기본적인 이해가 부족한 것 같습니다. 상태, useEffect 및 일반 제어 흐름에 대한 이 튜토리얼을 확인하세요.
useEffect 是异步的——首次渲染后以及每当设置依赖项数组中捕获的变量时,React 都会执行回调。您的依赖项数组为空,因此此 useEffect는 비동기식입니다. React는 첫 번째 렌더링 후 그리고 종속성 배열에 캡처된 변수가 설정될 때마다 콜백을 실행합니다. 종속성 배열이 비어 있으므로 이
는 구성 요소의 수명 주기에서(첫 번째 렌더링 후) 한 번 실행됩니다.
Multi가 무엇인지는 모르지만 다음과 같이 시도해 볼 수 있습니다.
으아아아
username 和 secret 仍然是默认的空字符串,因此我们渲染一条加载消息。渲染后,useEffect여기서 첫 번째 렌더링에서는 username 및 secret이 여전히 기본 빈 문자열이기 때문에 요청이 아직 완료되지 않았음을 알고 로딩 메시지를 렌더링합니다. 렌더링 후
가 실행되어 요청을 시작합니다.
username 和 secret 设置状态,这会触发另一个渲染。在此渲染上,响应中的 username 和 secret 值可用(我假设它们保证在响应中为非空字符串),因此不会渲染加载消息。相反,我们渲染 ChatsPage잠시 후 응답이 도착하고 응답 데이터와 함께 props를 받아들이는
React에 대한 기본적인 이해가 부족한 것 같습니다. 상태,
useEffect
및 일반 제어 흐름에 대한 이 튜토리얼을 확인하세요.
는 구성 요소의 수명 주기에서(첫 번째 렌더링 후) 한 번 실행됩니다.useEffect
是异步的——首次渲染后以及每当设置依赖项数组中捕获的变量时,React 都会执行回调。您的依赖项数组为空,因此此useEffect
는 비동기식입니다. React는 첫 번째 렌더링 후 그리고 종속성 배열에 캡처된 변수가 설정될 때마다 콜백을 실행합니다. 종속성 배열이 비어 있으므로 이으아아아
가 실행되어 요청을 시작합니다.username
和secret
仍然是默认的空字符串,因此我们渲染一条加载消息。渲染后,useEffect
여기서 첫 번째 렌더링에서는username
및secret
이 여전히 기본 빈 문자열이기 때문에 요청이 아직 완료되지 않았음을 알고 로딩 메시지를 렌더링합니다. 렌더링 후username
和secret
设置状态,这会触发另一个渲染。在此渲染上,响应中的username
和secret
值可用(我假设它们保证在响应中为非空字符串),因此不会渲染加载消息。相反,我们渲染ChatsPage
잠시 후 응답이 도착하고 응답 데이터와 함께 props를 받아들이는useMultiChatLogic
这样的钩子 必须在任何条件之上声明.如果这不是一个钩子,那么调用可以发生在if
추가 구성요소는setState
来完成,而不是=
React의 황금률은 상태가 불변이라는 것입니다. 따라서 한 렌더링에서 다음 렌더링으로 데이터가 변경되면 통과해야 합니다