ctx.setValue()
Trong các kịch bản field có thể chỉnh sửa như JSField, JSItem, đặt giá trị của field hiện tại. Kết hợp với ctx.getValue() có thể thực hiện two-way binding với form.
Kịch bản áp dụng
Lưu ý:
ctx.setValue(v)chỉ khả dụng trong ngữ cảnh RunJS có liên kết form; trong các kịch bản không có liên kết field như luồng sự kiện, quy tắc liên kết, JSBlock, phương thức này không tồn tại, khuyến nghị dùng optional chaining khi sử dụng:ctx.setValue?.(value).
Định nghĩa kiểu
- Tham số:
valuelà giá trị field cần ghi, kiểu được xác định bởi kiểu form item của field.
Giải thích về hành vi
ctx.setValue(v)sẽ cập nhật giá trị của field hiện tại trong Ant Design Form, và trigger logic liên kết và validate form liên quan.- Khi form chưa render xong hoặc field chưa đăng ký, gọi có thể không hiệu quả, khuyến nghị kết hợp với
ctx.getValue()để xác nhận kết quả ghi.
Ví dụ
Kết hợp với getValue để two-way binding
Đặt giá trị mặc định theo điều kiện
Ghi lại field hiện tại khi liên kết với field khác
Lưu ý
- Trong các field không thể chỉnh sửa (như JSField chế độ chi tiết, JSBlock),
ctx.setValuecó thể làundefined, khuyến nghị dùngctx.setValue?.(value)để tránh báo lỗi. - Khi đặt giá trị cho field quan hệ (m2o, o2m, v.v.), cần truyền cấu trúc khớp với kiểu field (như
{ id, [titleField]: label }), cụ thể tham khảo cấu hình field.
Liên quan
- ctx.getValue() - Lấy giá trị field hiện tại, kết hợp với setValue để two-way binding
- ctx.form - Instance Ant Design Form, có thể đọc/ghi các field khác
js-field:value-change- Sự kiện container được trigger khi giá trị bên ngoài thay đổi, dùng để cập nhật hiển thị

