source

useState는 동기화되어 있습니까?

nicesource 2023. 2. 14. 21:29
반응형

useState는 동기화되어 있습니까?

과거에, 우리는 분명히 경고받은 적이 있습니다setState({myProperty})비동기이며, 이 값은this.state.myProperty콜백 또는 다음 콜백까지 유효하지 않습니다.render()방법.

useState를 사용하면 상태 값을 명시적으로 업데이트한 후 어떻게 얻을 수 있습니까?

후크에서는 어떻게 동작합니까?내가 아는 한, 세터 기능은useState콜백을 받지 않습니다.

const [value, setValue] = useState(0);
setValue(42, () => console.log('hi callback');

콜백은 실행되지 않습니다.

구세계의 다른 회피책은 인스턴스 변수를 거는 것입니다.(e.g. this.otherProperty = 42)클래스에서는 동작하지 않습니다.재이용하는 함수인스턴스가 없기 때문입니다(아니요).this(완전 모드).

업데이트 후 를 사용하여 최신 상태에 액세스할 수 있습니다.여러 상태 훅이 있고 그 일부만 업데이트를 추적하는 경우 두 번째 인수로 어레이 내의 상태를 전달할 수 있습니다.useEffect기능:

useEffect(() => { console.log(state1, state2)}, [state1])

상기의useEffect다음 경우에만 호출됩니다.state1갱신되어 있기 때문에 신뢰하지 말아 주세요.state2최신이 아닐 수 있으므로 이 함수 내부에서 값을 가져옵니다.

업데이트 함수가 다음에 의해 작성되었는지 궁금하신 경우useState는 동기화되어 있습니다.즉, 훅을 사용할 때 React가 상태 업데이트를 배치하는 경우, 이 답변은 이에 대한 몇 가지 통찰력을 제공합니다.

관련 문서를 참조하시면...

const [state, setState] = useState(initialState);

스테이트풀값과 이를 갱신하는 함수를 반환합니다.

첫 번째 렌더링 중 반환된 상태(상태)는 첫 번째 인수(initialState)로 전달된 값과 동일합니다.

setState 함수는 상태를 갱신하기 위해 사용됩니다.새로운 상태 값을 받아들여 컴포넌트의 재렌더를 큐잉합니다.

setState(newState);

이후 재렌더 중에 useState에서 반환된 첫 번째 값은 항상 업데이트 적용 후 최신 상태가 됩니다.

그래서 당신의 새로운 상태는 그게 무엇이든 간에 당신이 방금 설정한 것입니다.useState즉, 가치의 가치initialState에 직접 접속합니다.state그 후 반응적으로 갱신됩니다.관련 문서의 추가 인용:

발신자 useState의 역할은 무엇입니까?「상태 변수」를 선언합니다.우리의 변수는 카운트라고 불리지만 바나나와 같은 다른 어떤 변수도 부를 수 있습니다.이는 함수 호출 간에 일부 값을 "유지"하는 방법입니다.useState는 this.state가 클래스에서 제공하는 것과 동일한 기능을 사용하는 새로운 방법입니다.일반적으로 함수가 종료될 때 변수는 "소거"되지만 상태 변수는 반응으로 유지됩니다.

갱신될 마다 뭔가 「부터」를 사용해 .componentDidUpdate를 클릭합니다.(docs)

언급URL : https://stackoverflow.com/questions/54119678/is-usestate-synchronous

반응형