Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

bug(mat-checkbox): with Signal Forms `required()`, MatCheckbox's own validator adds a duplicate `required` error that hides the schema error message

Đang mở
#33,945 1 bình luận 1 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
48/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
angular, typescript
Lĩnh vực
frontend, testing

Hướng nghiên cứu

Start by tracing how Signal Forms errors are combined with the MatCheckbox validator; the issue names MatCheckbox.validate() and CompatValidationError but does not identify source files or tests. Reproduce with the linked StackBlitz and inspect the error output. Done means the field exposes only the schema’s required error, including its custom message.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

area: material/checkbox P3
Is this a regression?
  • Yes, this behavior used to work in the previous version
The previous version in which this bug was not present was

No response

Description

When a mat-checkbox is bound to a Signal Forms field with [formField] and the schema uses required(), the field ends up with two errors of kind required:

  1. the schema error from required(path, { message }) - has the custom message;
  2. a CompatValidationError (kind required, no message) produced by MatCheckbox.validate().

This happens with many components which have 'required' input and validate method from Validators interface.

Reproduction

StackBlitz link: https://stackblitz.com/edit/1sinlau9-qd7bhr37?file=src%2Fexample%2Fcheckbox-signal-forms-example.ts
Steps to reproduce:

  1. Open the console
  2. Click the 'Show errors' button. The first getError('required) log shows kind: required and message: undefined. The second errors() log shows 2 errors.

As the result nothing is rendered

Expected Behavior
  • The field has a single required error, the one from the schema.
Actual Behavior
  • errors() contains two required errors: first a CompatValidationError from MatCheckbox.validate() (message is undefined), then the schema error.
  • getError('required') returns the first one, so getError('required')?.message is undefined and nothing is rendered.
Environment
  • Angular: 22.0.6
  • CDK/Material: 22.0.4
  • Browser(s): Google Chrome Version 154.0.8037.98
  • Operating System: MacOs 27.0
Ngôn ngữ chính
TypeScript
Star
25k
Fork
6.8k
Merge trung bình
1 ngày 5 giờ
Pull request đã merge (30 ngày)
67

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của angular/components

Tất cả issue của angular/components

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.