рдореИрдВрдиреЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЙрд╕ рдХреНрд░рдордмрджреНрдз рд╕реВрдЪреА рдореЗрдВ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд░рдордмрджреНрдз рд╕реВрдЪреА рдФрд░ рджреВрд╕рд░реА рд╕реВрдЪреА рд▓рд╛рдЧреВ рдХреА рд╣реИред рдРрдк рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рдЙрд╕ рдХреНрд░рдордмрджреНрдз рд╕реВрдЪреА рдореЗрдВ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:
Uncaught Error: Invariant Violation: Expected to find a valid target
.n @ app.js:50803
t.canDropOnTarget @ app.js:50804
(anonymous function) @ app.js:50804
t.handleTopDragEnter @ app.js:50804
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдордЬрд╝рдмреВрддреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рдЫреЛрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ dist/ReactDnD.min.js
ред
рдХреЛрдИ рд╕рдВрдХреЗрдд? рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
рдХреНрдпрд╛ рдЖрдк рдЕрдкрдирд╛ рдХреЛрдб рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рд╣рд╛рдБ, рдХреГрдкрдпрд╛ рдХрд╣реАрдВ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рдХреЛрдб рдбрд╛рд▓реЗрдВред
рдЗрд╕рд╕реЗ рдЖрдк рдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдирдкреАрдПрдо рдкрд░ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред
рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реАред рдЬрд┐рд╕ рд╡рд╕реНрддреБ рдХреЛ рдореИрдВрдиреЗ beginDrag
рдореЗрдВ рд▓реМрдЯрд╛рдпрд╛ рдЙрд╕рдореЗрдВ рдПрдХ рдЖрдИрдбреА рдирд╣реАрдВ рдереАред рд╕рдВрднрд╡рдд: рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдереА, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд░рд┐рдПрдХреНрдЯ-рдбреАрдПрдирдбреА рдореЗрдВ рд╡рд╣ рддреНрд░реБрдЯрд┐ рд╣реЛ рд╕рдХрддреА рдереАред
рджрд┐рд▓рдЪрд╕реНрдк, рдзрдиреНрдпрд╡рд╛рдж! рдЬрдм рддрдХ рдпрд╣ рдПрдХ рд╕рд╛рджрд╛ рд╡рд╕реНрддреБ рд╣реИ рддрдм рддрдХ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ beginDrag()
рд░рд┐рдЯрд░реНрди рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╡рд╛рд╣ рдХреНрдпрд╛ рдерд╛ред
рдкреБрд░рд╛рдиреЗ рдзрд╛рдЧреЗ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпрд╣ рдкреВрд░реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╕рдВрджрд░реНрдн рд╣реИ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрдкрдпреЛрдЧреА рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рдереА, рд▓реЗрдХрд┐рди рдореБрджреНрджрд╛ рдпрд╣ рдерд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдШрдЯрдХ рдерд╛ (рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдХрд╛рд░реНрдб рдХреЗ рд╕рдорд╛рди) рдЬрд┐рд╕реЗ _both_ рдбреНрд░реИрдЧ рдФрд░ рдбреНрд░реЙрдк рд░реИрдкрд░ рд╕реЗ рд╕рдЬрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЬрдм simulateBeginDrag
рд╢реБрд░реВ рд╣реБрдЖ, рддреЛ рдЙрд╕рдиреЗ _рдбреНрд░реЙрдк рд▓рдХреНрд╖реНрдп_ (рдбреНрд░реИрдЧ рд╕реНрд░реЛрдд рдХреЗ рдмрдЬрд╛рдп) рдХреЛ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдХреЛ рднреЗрдЬрд╛, рдЬреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред рд╣реИрдВрдбрд▓рд░ рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп рд╕рдорд╛рдзрд╛рди рдПрдХ рд╕реНрддрд░ рдЧрд╣рд░рд╛ ( getDecoratedComponentInstance()
) рдЬрд╛рдирд╛ рдерд╛ред
@yannisbarlas рдорд╣рд╛рди рдЦреЛрдЬред рдореИрдВ рдЙрд╕реА рд╕рдЯреАрдХ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рд╢рд╛рдпрдж рдкрд░реАрдХреНрд╖рдг рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
@yannisbarlas рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрди рдзрдиреНрдпрд╡рд╛рдж! рдмрд╣реБрдд рдирд┐рд░рд╛рд╢рд╛ рдореЗрдВ рдореЗрд░реА рдорджрдж рдХреА :)
рдмрд╕ рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдФрд░ рдореБрджреНрджреЗ рдкрд░ рдареЛрдХрд░ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдереА рдЬрдм рдПрдХ рдХреНрд░рдордмрджреНрдз рд╕реВрдЪреА рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдореЗрдВ рдЗрд╕рдХреА рдЖрдИрдбреА рдФрд░ рд╕реВрдЪреА рдореЗрдВ рдЗрд╕рдХреА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рдмрдирд╛ рдПрдХ рдХреБрдВрдЬреА рд╣реЛрддреА рд╣реИред
рддрддреНрд╡ рдХреЛ рдШрд╕реАрдЯреЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪрд┐рдд (рдЕрд░реНрдерд╛рдд, рд╕реБрд╕рдВрдЧрдд) рдХреБрдВрдЬреА рд╕реЗрдЯ рдХрд░рдХреЗ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
@yannisbarlas рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рд╣реИ?
рджреЗрд░ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ @damiangreen , рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдИрдореЗрд▓ рдореЗрд░реЗ рдареАрдХ рдкреАрдЫреЗ рд╕реЗ рдЙрдбрд╝ рдЧрдпрд╛ред
рдХреЛрдб рдХреЛ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдпрд╣ рдХреБрдЫ рд╕рдордп рд╣реЛ рдЧрдпрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ
рдпрджрд┐ рдХреЛрдИ рдЕрднреА рднреА рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрд┐рд╕ рд╕реВрдЪреА рдХрд╛ рдЖрдк рдорд╛рдирдЪрд┐рддреНрд░рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕рдХреЗ рддрддреНрд╡ рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рдХреБрдВрдЬреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рд╕реВрдЪреА рдореЗрдВ рдЖрдЗрдЯрдо рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ Redux рдХрд╛рд░реНрд░рд╡рд╛рдИ рднреЗрдЬ рд░рд╣рд╛ рдерд╛, рдФрд░ рдлрд┐рд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдореИрдк рдХрд┐рдП рдЧрдП рддрддреНрд╡ рдХреА рдХреБрдВрдЬреА рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣рд╛ рдерд╛:
blocks.map((block, idx) => {
<React.Fragment key={`${block.name}_${idx}`}>
...
<React.Fragment />
})
рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рддреНрд░реБрдЯрд┐ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ idx
рдордХреНрдЦреА рдкрд░ рдмрджрд▓ рд░рд╣рд╛ рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж @chulanovskyi
рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рдерд╛:
JSX
arr.map((item, idx) => (
<Item
item={item}
// key={`${idx}_${item.id}`} // this was busted because idx
key={item.key} // when adding this to the array elsewhere i use a count for uniqueness
index={idx}
>
</Item>
))
рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рддреНрд░реБрдЯрд┐ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЧрдП рдбреНрд░реЙрдк рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИ - рдЬрдм рдЕрдВрддрд┐рдо рдЖрдЗрдЯрдо рдХреЛ рдбреНрд░реЙрдк рдХреНрд╖реЗрддреНрд░ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдмрд┐рдирд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рд╣реЛрддреА рд╣реИ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдкрд╡рд╛рдж рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдЗрдЯрдо рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рдХреНрд╖реЗрддреНрд░ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдореВрд╣ рдПрдХ рд╣реА рдЖрдЗрдЯрдо рд╕реЗ рд╡реНрдпреБрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ рд╣рдореНрдо рдмрджрд▓рддреЗ рд╣реИрдВ
рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рддреНрд░реБрдЯрд┐ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЧрдП рдбреНрд░реЙрдк рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИ - рдЬрдм рдЕрдВрддрд┐рдо рдЖрдЗрдЯрдо рдХреЛ рдбреНрд░реЙрдк рдХреНрд╖реЗрддреНрд░ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдмрд┐рдирд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рд╣реЛрддреА рд╣реИ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдкрд╡рд╛рдж рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдЗрдЯрдо рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рдХреНрд╖реЗрддреНрд░ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдореВрд╣ рдПрдХ рд╣реА рдЖрдЗрдЯрдо рд╕реЗ рд╡реНрдпреБрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ рд╣рдореНрдо рдмрджрд▓рддреЗ рд╣реИрдВ
рдирдорд╕реНрддреЗ @DominicTobias
рдореЗрд░реЗ рдкрд╛рд╕ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЧрдП рдбреНрд░реЙрдк рдХреНрд╖реЗрддреНрд░ рднреА рд╣реИрдВред
рдЖрдкрдиреЗ рдпрд╣ рдХреИрд╕реЗ рдлрд┐рдХреНрд╕ рдХрд┐рдпрд╛?
@рд░реЗрдордВрдб-рдУрдВрдЧ
рдореЗрд░реЗ рдкрд╛рд╕ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЧрдП рдбреНрд░реЙрдк рдХреНрд╖реЗрддреНрд░ рднреА рд╣реИрдВред
рдЖрдкрдиреЗ рдпрд╣ рдХреИрд╕реЗ рдлрд┐рдХреНрд╕ рдХрд┐рдпрд╛?
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реЛ рд╕рдХрддреА рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдлрд┐рд░ рд╕реЗ рдкреИрд░реЗрдВрдЯ (рдКрдкрд░реА рд╕реНрддрд░) рдШрдЯрдХ рдмрдирд╛рдпрд╛ рд╣реИред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреАрдПрдирдбреА рдЦреЛрдИ рд╣реБрдИ рдЖрдИрдбреА (рдЙрд╕рдХреА рдЖрдВрддрд░рд┐рдХ рдЖрдИрдбреА) рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рддреНрд░реБрдЯрд┐ рд╣реИред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдерд╛, рдХрд┐ рдореИрдВрдиреЗ рд░реЗрдбреНрдпреВрд╕рд░ рдореЗрдВ рдЕрджреНрдпрддрди рд╕реНрдерд┐рддрд┐ рдХреЗ рджреМрд░рд╛рди рдореВрд▓ рдЗрдХрд╛рдИ рдХреЗ id
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ (рдкрдВрдХреНрддрд┐ рдХреЗ рднреАрддрд░ рдХреЙрд▓рдо рд▓реЗ рдЬрд╛рдПрдВ, рдФрд░ рдХреЙрд▓рдо рдЕрдкрдиреЗ рд╕реНрдерд╛рди рдмрджрд▓рддреЗ рд╕рдордп рдкрдВрдХреНрддрд┐ рдЖрдИрдбреА рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ)ред updating id functionality
рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рднреА рдпрд╣ рдореБрджреНрджрд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдбреНрд░реЙрдк рд▓рдХреНрд╖реНрдп рдХреИрдирдбреНрд░реЙрдк рдкрд░ рдЭреВрдард╛ рд░рд┐рдЯрд░реНрди рджреЗрддрд╛ рд╣реИред рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдХрд┐рд╕реА рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд▓рд╛рдкрддрд╛ рдЖрдИрдбреА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдИрдбреА рдХрд╣рд╛рдВ рд░рдЦреА рдЬрд╛рдП?
рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЯреНрд╡рд┐рдХ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рдЖрдк рдЗрд╕реЗ рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЦреАрдВрдЪрдХрд░/рдЫреЛрдбрд╝рдХрд░ рдпрд╣рд╛рдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: https://codesandbox.io/s/broken-pher-qf0f2?file= /src/Container.jsx
рдореИрдВрдиреЗ рд╕рднреА рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рднреА рдмрдирд╛рдпрд╛ (рд╢рд╛рдпрдж рдореБрдЭреЗ рдЕрднреА рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛?) #2693
рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереА, рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдареАрдХ рдХрд┐рдпрд╛:
рдореЗрд░реЗ рдХреЛрдб рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рдерд╛
const ParentOfCards = () => {
const [ cards, setCards ] = useState([ ... ])
const CardComponent = ({ card, index }) => {
return (/**/)
}
return (
<div>
{ cards.map( CardComponent ) }
</div>
)
}
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЖрдк CardComponent
рдХреЛ ParentOfCards
CardComponent
рдЕрдВрджрд░ рдирд╣реАрдВ рдбрд╛рд▓ рд╕рдХрддреЗ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ CardComponent
рдХреЛ ParentOfCards
рд╕реЗ рдЕрд▓рдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛
const ParentOfCards = () => {
const [ cards, setCards ] = useState([ ... ])
return (
<div>
{ cards.map( CardComponent ) }
</div>
)
}
const CardComponent = ({ card, index }) => {
return (/**/)
}
рдФрд░ рдЕрдм (рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рджреЛ рджрд┐рдиреЛрдВ рдХреЗ рдмрд╛рдж: рд╕реА) рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рдореИрдВ
@marcelomrtnz рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж
рдЖрдкрдиреЗ рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдореЗрд░рд╛ рдмрд╣реБрдд рд╕рдордп рдмрдЪрд╛рдпрд╛
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдбреАрдПрдирдбреА рд▓рд┐рдм рдХреЗ рд╕рд╛рде рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдбреНрд░реИрдЧ рдбреНрд░реЙрдк рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди рд╕реВрдЪреА рд╕реЗ рдкрдВрдХреНрддрд┐ рдХреЙрд▓рдо divs рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рдХреЗрд╡рд▓ рдХрд╛рд░реНрдб рд╕реВрдЪреА рд░рдЦрдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд┐рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ред рдЙрд╕реЗ рдореЛрдмрд╛рдЗрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рд╡рд╣ рд╡реИрдз рд▓рдХреНрд╖реНрдп рдорд┐рд▓ рдЧрдпрд╛
рдореБрдЭреЗ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЖрдкрдХреА рдкреЛрд╕реНрдЯ рд╕реЗ рдорд┐рд▓рд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @marcelomrtnz
рдореЗрд░реЗ рд╕рд╛рде рднреА рд╡рд╣реА рджрд┐рдХреНрдХрдд рд╣реИред https://codesandbox.io/s/proud-wind-hklt6?file=/src/CreateForum.jsx
рдпрд╣рд╛рдБ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рд╣реИред рдЖрдЗрдЯрдо 1ba рдХреЛ рдЖрдЗрдЯрдо 1 рдкрд░ рдЦреАрдВрдЪреЗрдВ, рдФрд░ рдлрд┐рд░ рдЖрдЗрдЯрдо 1ba рдХреЛ рдлрд┐рд░ рд╕реЗ рдиреАрдЪреЗ рдЦреАрдВрдЪреЗрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдмрд╕ рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдФрд░ рдореБрджреНрджреЗ рдкрд░ рдареЛрдХрд░ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдереА рдЬрдм рдПрдХ рдХреНрд░рдордмрджреНрдз рд╕реВрдЪреА рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдореЗрдВ рдЗрд╕рдХреА рдЖрдИрдбреА рдФрд░ рд╕реВрдЪреА рдореЗрдВ рдЗрд╕рдХреА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рдмрдирд╛ рдПрдХ рдХреБрдВрдЬреА рд╣реЛрддреА рд╣реИред
рддрддреНрд╡ рдХреЛ рдШрд╕реАрдЯреЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪрд┐рдд (рдЕрд░реНрдерд╛рдд, рд╕реБрд╕рдВрдЧрдд) рдХреБрдВрдЬреА рд╕реЗрдЯ рдХрд░рдХреЗ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред