Tôi đã đấu tranh này trong một vài ngày, cố gắng tìm ra cách "phản ứng" để làm điều đó. Về cơ bản, tôi có một cây, một danh sách các danh sách (trong danh sách ...) có thể được tùy ý lồng nhau, và tôi muốn một thành phần sẽ hiển thị điều này và cũng cho phép sắp xếp lại.Làm thế nào để quản lý nhà nước trong một thành phần cây trong reactjs
Dưới đây là dữ liệu của tôi:
var data = [{
id: 1
}, {
id: 2, children: [
{
id: 3, children: [{id: 6}]
}, {
id: 4
}, {
id: 5
}]
}]
vượt qua đầu tiên của tôi là chỉ có một single "cây" thành phần xây dựng danh sách lồng nhau của các yếu tố DOM trong làm cho chức năng của nó (look at the code here). Điều đó thực sự hoạt động khá tốt với số lượng nhỏ các phần tử, nhưng tôi muốn có thể hỗ trợ hàng trăm phần tử và có chi phí tái xuất rất cao khi một phần tử được di chuyển bên trong cây (~ 600ms khi có vài trăm phần tử yếu tố).
Vì vậy, tôi nghĩ rằng tôi sẽ có mỗi "nút" của cây là thể hiện riêng của thành phần này. Nhưng đây là câu hỏi của tôi (xin lỗi vì phần giới thiệu dài):
Nếu mỗi nút truy vấn động danh sách đó là ID của trẻ em từ cơ sở dữ liệu trung tâm và lưu trữ trong trạng thái? Hoặc nút trên cùng sẽ tải toàn bộ cây và truyền mọi thứ xuống qua các đạo cụ?
Tôi vẫn đang cố gắng suy nghĩ về cách tiểu bang & đạo cụ phải được xử lý & chia nhỏ.
Cảm ơn
Mọi thứ đều là cây ở đây, đúng không?Bạn có thể tái sử dụng thành phần Tree để làm cho nó có Tree tree thay vì coi nó là cấp cao nhất. Tôi đã không thử rendering đệ quy, nhưng nó sẽ làm việc. Đối với mỗi thành phần Tree, làm cho các con của nó ngay lập tức và vượt qua những đứa trẻ đó, vv Ngoài ra, hãy chắc chắn rằng bạn đặt thuộc tính 'key' trên các thành phần trong một vòng lặp để React có thể theo dõi chúng. –
oh thuộc tính "khóa"? Đã không thấy rằng bất cứ nơi nào trong tài liệu. Tôi sẽ thử điều đó ra –
Thuộc tính "khóa" không rõ ràng, nhưng nó được đề cập trong [Dynamic Children] (http://facebook.github.io/react/docs/multiple-components.html#dynamic-children) của tài liệu Thành phần. –