에러 백과

시그널 폼에서 연결이 끊어진 필드

이 오류는 Field 인스턴스가 현재 모델 구조에 더 이상 연결되어 있지 않다는 뜻입니다. Angular 시그널 폼은 이전에 존재하던 필드 경로를 부모 객체의 동일한 프로퍼티로 더 이상 찾을 수 없을 때 NG01902를 발생시킵니다.

필드 값을 의도치 않게 undefined로 설정하는 것이 흔한 원인입니다. 시그널 폼에서 undefined는 “필드가 존재하지 않음”을 뜻하므로 기존 필드의 연결이 끊어질 수 있습니다.

발생 원인

시그널 폼은 필드 인스턴스를 모델 구조와 동기화합니다. 모델 구조가 바뀐 뒤에도 코드가 이전 필드 인스턴스를 참조하면 Angular가 이 불일치를 감지하고 오류를 발생시킵니다.

다음과 같은 경우에 발생할 수 있습니다.

  • 모델 객체에서 프로퍼티가 제거된 경우
  • 프로퍼티가 유지되지 않고 undefined가 된 경우
  • 구조를 갱신한 뒤에도 코드가 오래된 필드 참조를 유지하는 경우

해결 방법

  • 모델 필드에 undefined를 쓰지 마세요. 필드가 계속 존재해야 한다면 null이나 다른 명시적인 값을 사용하세요.
  • 필드를 사용하는 동안 모델 구조를 안정적으로 유지하세요.
  • 구조를 갱신한 뒤에는 오래된 참조를 재사용하지 말고 현재 폼 트리에서 필드를 다시 읽으세요.

모델 설계 지침은 undefined 피하기를 참고하세요.