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 FieldEditor
thà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 FieldEditor
trạng thái và thay vào đó đặt nó ở FormEditor
trạng thái. Tuy nhiên, điều đó sẽ yêu cầu FormEditor
lắng nghe từng FieldEditor
thà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?
FieldEditor
s 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 FieldEditor
phiên bản của bạn sẽ kết xuất dựa trên props
thô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 FormEditor
thể 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.