1. 문제는 onBlur 순간에 해당 값이 이미 데이터베이스에 있는지 확인하려는 것입니다. 이메일을 등록할 때 실시간으로 메시지가 표시됩니다. 이름이 사용되었습니다. 이전에는 jquery 시대에는 ajax 요청을 동기 요청이라고 부를 수 있었습니다. 그러나 antd+dva 프레임워크에서는 디스패치를 통해 요청이 시작됩니다. 이 경우 이를 어떻게 구현합니까?
디스패치가 시작하는 것은 요청이 아니라 전역 상태를 변경하는 작업입니다. 그러나 데이터 상태 작업을 변경하는 가장 일반적인 시나리오는 [비동기 네트워크 요청 보내기]입니다. 이는 요청을 디스패치해야 한다는 의미도 아니고 비동기 시나리오에서 디스패치를 사용해야 한다는 의미도 아닙니다.
귀하의 질문과 관련하여 입력 상자의 상태는 분명히 매우 지역적이며 [정상적인 상황에서] 페이지의 다른 부분의 상태와 결합되지 않습니다. 따라서 이때 Dva로 캡슐화된 Redux 패키지를 완전히 버리고 대신 fetch / axios / $.ajax 기반 모듈을 캡슐화하여 이 입력 상자 구성 요소를 제공할 수 있습니다.
@ewind님의 정답 사실 제가 예전부터 항상 헷갈렸던 이유는 antd 프레임워크의 form 컴포넌트의 verifyFields 메소드가 비동기 작업을 자동으로 차단한다는 사실을 몰랐기 때문입니다. 저는 항상 비동기 검증을 한다고 생각했습니다. 이전에 제출한 양식을 반환하지 않았습니다.
Redux와 관련된 일부 개념을 완전히 이해하지 못할 수도 있습니다.
디스패치가 시작하는 것은 요청이 아니라 전역 상태를 변경하는 작업입니다. 그러나 데이터 상태 작업을 변경하는 가장 일반적인 시나리오는 [비동기 네트워크 요청 보내기]입니다. 이는 요청을 디스패치해야 한다는 의미도 아니고 비동기 시나리오에서 디스패치를 사용해야 한다는 의미도 아닙니다.
귀하의 질문과 관련하여 입력 상자의 상태는 분명히 매우 지역적이며 [정상적인 상황에서] 페이지의 다른 부분의 상태와 결합되지 않습니다. 따라서 이때 Dva로 캡슐화된 Redux 패키지를 완전히 버리고 대신 fetch / axios / $.ajax 기반 모듈을 캡슐화하여 이 입력 상자 구성 요소를 제공할 수 있습니다.
마지막으로, 동기식 Ajax는 비동기식 요청을 Promise로 캡슐화하는 것이 좋습니다.
@ewind님의 정답
사실 제가 예전부터 항상 헷갈렸던 이유는 antd 프레임워크의 form 컴포넌트의 verifyFields 메소드가 비동기 작업을 자동으로 차단한다는 사실을 몰랐기 때문입니다. 저는 항상 비동기 검증을 한다고 생각했습니다. 이전에 제출한 양식을 반환하지 않았습니다.