React-dnd: НСпСрСхвачСнная ошибка: Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠ΅ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅: оТидаСтся ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ допустимой Ρ†Π΅Π»ΠΈ.

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 17 июл. 2015  Β·  20ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: react-dnd/react-dnd

Π― Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» сортируСмый список ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ список, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ элСмСнты Π² этот сортируСмый список. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ. Но ΠΊΠΎΠ³Π΄Π° я ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π»ΠΈ Π² этом сортируСмом спискС, я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

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 .

НамСк? Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌ для возникновСния этой ошибки?

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

На всякий случай, Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ наткнСтся Π½Π° эту ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Ρƒ мСня Π±Ρ‹Π»Π° аналогичная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡ€ΠΈ составлСнии сортируСмого списка ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠ»ΡŽΡ‡, состоящий ΠΈΠ· ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΈ Π΅Π³ΠΎ индСкса Π² спискС.
Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ просто сдСлано ΠΏΡƒΡ‚Π΅ΠΌ установки ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ) ΠΊΠ»ΡŽΡ‡Π° для пСрСтаскиваСмого элСмСнта.

ВсС 20 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ своим ΠΊΠΎΠ΄ΠΎΠΌ?

Π”Π°, поТалуйста, размСститС Π³Π΄Π΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄.
Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΈΠ· вас, Ссли Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ Π² NPM, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ Π»Π΅Π³Ρ‡Π΅ ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

Π― ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ» ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ настройкС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° для вас, рСбята. ΠžΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я Π²Π΅Ρ€Π½ΡƒΠ» Π² beginDrag , Π½Π΅ содСрТал ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°. ВСроятно, Ρƒ React Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с этим, которая ΠΌΠΎΠ³Π»Π° Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² React-Dnd.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, спасибо! На самом Π΄Π΅Π»Π΅ ΠΌΡ‹ Π½Π΅ Π½Π°Π»Π°Π³Π°Π΅ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ beginDrag() Ссли это простой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, поэтому ΠΌΠ½Π΅ интСрСсно, ΠΊΠ°ΠΊΠΎΠ² Π±Ρ‹Π» ΠΏΠΎΡ‚ΠΎΠΊ ошибок.

Π˜Π·Π²ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это СдинствСнная ссылка Π½Π° эту ΠΎΡˆΠΈΠ±ΠΊΡƒ Π²ΠΎ всСм Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, я ΠΏΠΎΠ΄ΡƒΠΌΠ°Π», Ρ‡Ρ‚ΠΎ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅.

Π£ мСня Π±Ρ‹Π»Π° такая ΠΆΠ΅ ошибка, Π½ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ мСня Π±Ρ‹Π» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ (ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° Card Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΡƒΠΊΡ€Π°ΡˆΠ΅Π½ ΠΎΠ±Π΅ΠΈΠΌΠΈ_ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°ΠΌΠΈ пСрСтаскивания.

Когда simulateBeginDrag Π½Π°Ρ‡Π°Π»ΠΎΡΡŒ, ΠΎΠ½ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» _drop target_ (вмСсто источника пСрСтаскивания) Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Ρƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ. РСшСниС Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»ΠΎΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π° ΠΎΠ΄ΠΈΠ½ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π³Π»ΡƒΠ±ΠΆΠ΅ (с 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> ))

Для мСня эта ошибка Π²Ρ‹Π·Π²Π°Π½Π° динамичСски созданными областями пСрСтаскивания - ΠΊΠΎΠ³Π΄Π° послСдний элСмСнт пСрСмСщаСтся ΠΈΠ· области пСрСтаскивания, React ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π±Π΅Π· этой области, ΠΈ это, каТСтся, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это состояниС Π³ΠΎΠ½ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ удаляСтся нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ элСмСнта, хотя Π³Ρ€ΡƒΠΏΠΏΡ‹ происходят ΠΈΠ· Ρ‚Π΅Ρ… ΠΆΠ΅ элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ…ΠΌΠΌ

Для мСня эта ошибка Π²Ρ‹Π·Π²Π°Π½Π° динамичСски созданными областями пСрСтаскивания - ΠΊΠΎΠ³Π΄Π° послСдний элСмСнт пСрСмСщаСтся ΠΈΠ· области пСрСтаскивания, React ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π±Π΅Π· этой области, ΠΈ это, каТСтся, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это состояниС Π³ΠΎΠ½ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ удаляСтся нСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ элСмСнта, хотя Π³Ρ€ΡƒΠΏΠΏΡ‹ происходят ΠΈΠ· Ρ‚Π΅Ρ… ΠΆΠ΅ элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ…ΠΌΠΌ

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, @DominicTobias
Π£ мСня Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ динамичСски созданныС области пСрСтаскивания.
Как Ρ‚Ρ‹ это ΠΏΠΎΡ‡ΠΈΠ½ΠΈΠ»?

@ raymond-ong

Π£ мСня Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ динамичСски созданныС области пСрСтаскивания.
Как Ρ‚Ρ‹ это ΠΏΠΎΡ‡ΠΈΠ½ΠΈΠ»?

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ снова создали Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ (Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ) ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚.
Π’ этом случаС response-dnd потСрял ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (Π΅Π³ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€), с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π», ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Π’ ΠΌΠΎΠ΅ΠΌ случаС это Π±Ρ‹Π»ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ я ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ id Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ состояния Π² Ρ€Π΅Π΄ΡƒΠΊΡ‚ΠΎΡ€Π΅ (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ столбцы Π²Π½ΡƒΡ‚Ρ€ΠΈ строки ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ строки, ΠΊΠΎΠ³Π΄Π° столбцы ΠΌΠ΅Π½ΡΡŽΡ‚ свои мСста). ПослС удалСния updating id functionality всС Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.

Π£ мСня Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ такая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. Π’ ΠΌΠΎΠ΅ΠΌ случаС это происходит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Ρ†Π΅Π»ΡŒ drop Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ false Π½Π° canDrop. ΠšΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π»ΠΎΠΆΠΈΡ‚ΡŒ вашС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹? ΠšΡ‚ΠΎ-Ρ‚ΠΎ упомянул, Ρ‡Ρ‚ΠΎ это связано с ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ, Π½ΠΎ я Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, ΠΊΡƒΠ΄Π° Π΅Π³ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ?

Π£ мСня Ρ‚Π° ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΌΠ½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ это здСсь, ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΠ² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт: https://codesandbox.io/s/broken-feather-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 ΠΎΡ‚ ParentOfCards scope:

const ParentOfCards = () => {    

     const [ cards, setCards ] = useState([ ... ])


    return (
        <div>
            { cards.map( CardComponent ) }
        </div>
    )

}

const CardComponent = ({ card, index }) => {
       return (/**/)
}

И Π²ΠΎΡ‚ (послС Π΄Π²ΡƒΡ… Π΄Π½Π΅ΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ: c) Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚! 😁

@marcelomrtnz Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ спасибо
Π’Ρ‹ сэкономили ΠΌΠ½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° этом вопросС Π½Π° мобильном Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅

Π― столкнулся с Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΈ пСрСтаскивании Π½Π° мобильном Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ response dnd lib, Π½ΠΎ послС удалСния div столбцов строк ΠΈΠ· списка ΠΈ сохранСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ списка ΠΊΠ°Ρ€Ρ‚ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π» Ρƒ мСня Π±Π΅Π· этой ошибки. Он ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» эту Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π»ΡŒ Π² мобильном Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅

Π― ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» эту идСю ΠΈΠ· вашСго сообщСния, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ спасибо @marcelomrtnz

Π£ мСня такая ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. https://codesandbox.io/s/proud-wind-hklt6?file=/src/CreateForum.jsx
Π’ΠΎΡ‚ пСсочница. ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ элСмСнт 1ba Π½Π° элСмСнт 1, Π° Π·Π°Ρ‚Π΅ΠΌ снова элСмСнт 1ba Π²Π½ΠΈΠ·.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ