Böyle bir bileşen hiyerarşisi Verilen:Yuvalanmış Redux konteynerlerini sahne geçirmeden yönetme?
<TodoList>
<Todo>
<TodoHeader/>
<TodoBody>
<TodoDetails>
<TodoStatus />
<TodoDetails>
<TodoDescription />
<TodoBody>
<Todo>
</TodoList>
... ve bunun gibi bir mağaza:
{
todos: [
{ id: 1, status: "INCOMPLETE", header: "title one", description: "do a something" },
{ id: 2, status: "INCOMPLETE", header: "title two", description: "something else" },
{ id: 3, status: "COMPLETE", header: "title three", description: "one more thing" },
]
}
gerek kalmadan mağazaya bağlanmak için iç içe TodoStatus
bileşen için iyi bir yolu var mı id
'u bileşen hiyerarşisini sahne olarak geçirin mi? Örneğin, Todo
, currentTodoId = 1
'u içerik olarak ayarlayabilir; bu, alt redüktörler için kullanılabilir, ancak alternatifler var mı? Belki de ana bileşenin deponuzu 'a indirgemesinin bir yolu, çocuk bileşenlerinin daha sonra görebilmesinin bir yolu ...?
Bu noktada, muhtemelen "neden" diye sormak istersiniz? Eh, TodoList
(todos dizisi üzerinde çalışan) ve yuvalanmış TodoStatus
(sadece tek bir todo üzerinde çalışmak isteyen) arasında kesinlikle sunum bileşenleri birkaç düzeyde olabileceğini düşünün. Böyle bir hiyerarşi aşağı todoId
geçmek zorunda oldukça acı verici: Bu noktada
<TodoList>
<Todo todoId={1}>
<SomeAnimation todoId={1}>
<SomeLayout todoId={1}>
<SomeOtherAnimation todoId={1}>
<SomeDebugContainer todoId={1}>
<TodoHeader todoId={1}>
<TodoBody todoId={1}>
<TodoDetails todoId={1}>
<TodoStatus todoId={1}> // yay!
, bu bağlam için iyidir tepki, yani bir Redux özgü desen muhtemelen orada değil etkilenirse ne olduğunu hayal ediyorum ama yanılmak isterdim!
Teşekkürler! Bu örnekte, tüm aracı bileşenlerin mevcut olduğu DOM'yi tam olarak gösterdim, ancak ebeveynin ('todo' nun sahibi olan) aslında iç içe geçmiş çocuklara doğrudan erişmediğini ima etmek istedim. 'Todo' bileşeni basitçe 'SomeAnimation' bileşenini oluşturabilir, örneğin kendi çocuklarını vb. Oluşturur. Bu senaryoda, hiyerarşiden * bir şey * aşmanız gerekir; 'id' bunun bir örneğiydi. Buna güzelce izin verecek başka kalıplar olup olmadığını merak ediyordum. – NevilleS
Özellikle, bu gibi durumlarda (ebeveynin XYZ nesnelerinin bir listesini yürüttüğü), bu nedenle, bir 'XYZ' mantığı için sunum mantığını oluşturan bazı bileşenlere sahip olmak istersiniz. O halde ebeveynin, bireysel bileşenlere erişebilen devlet ağacını azaltabilmesi için, sadece tek tek XYZ durumuna göre indirgeyiciler yazabilmeleri yararlı olacaktır. Redux-imleci gibi bazı Redux eklentileriyle bu tür bir davranışa erişilebiliyor gibi görünüyor, ancak eksik olduğum kalıplar var mı diye merak ediyordum. – NevilleS
Bu soruyu çok spesifik bir örnek olmadan yanıtlamak zordur. Püskürtme geçişinin React'ta kesinlikle normal olduğunu ve her bileşen için> 10 sahne hakkında konuşmazsak, sorunu tam olarak göremiyorum. –