Tôi có cấu trúc như sau:
FormEditor- giữ nhiều FieldEditor
FieldEditor- chỉnh sửa một trường của biểu mẫu và lưu các giá trị khác nhau về trạng thái đó trong trạng thái của nó
Khi một nút được nhấp trong FormEditor, tôi muốn có thể thu thập thông tin về các trường từ tất cả các FieldEditorthành phần, thông tin ở trạng thái của chúng và có tất cả trong FormEditor.
Tôi đã xem xét việc lưu trữ thông tin về các trường bên ngoài FieldEditortrạng thái và thay vào đó đặt nó ở FormEditortrạng thái. Tuy nhiên, điều đó sẽ yêu cầu FormEditorlắng nghe từng FieldEditorthành phần của nó khi chúng thay đổi và lưu trữ thông tin của chúng ở trạng thái.
Tôi không thể chỉ truy cập vào trạng thái của trẻ em? Có lý tưởng không?
FieldEditors riêng biệt, lưu trạng thái của chúng trong FormEditorâm thanh tốt. Nếu đây là trường hợp, các FieldEditorphiên bản của bạn sẽ kết xuất dựa trên propsthông qua trình soạn thảo biểu mẫu của họ chứ không phải của họ state. Một cách phức tạp hơn nhưng linh hoạt hơn là tạo ra một trình tuần tự hóa đi qua bất kỳ phần tử con nào và tìm tất cả các FormEditorthể hiện trong số chúng và tuần tự hóa chúng thành một đối tượng JSON. Đối tượng JSON có thể được lồng tùy ý (nhiều hơn một cấp) dựa trên các mức lồng nhau của các thể hiện trong trình soạn thảo biểu mẫu.