React-dnd: Как ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρ†Π΅Π»ΡŒ падСния НЕ зависаСт

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 22 янв. 2016  Β·  2ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: react-dnd/react-dnd

Π― ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ дСйствия redux, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ состояния DnD Π²ΠΎ всСм ΠΌΠΈΡ€Π΅. МнС Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, происходит Π»ΠΈ пСрСтаскиваниС ΠΈ ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ Ρ†Π΅Π»ΠΈ (Π² ΠΈΠ΄Π΅Π°Π»Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ†Π΅Π»ΡŒ) зависаСт. ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ пСрСтаскиваниС достаточно просто, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Source, Π½ΠΎ я Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° Ρ†Π΅Π»ΡŒ. Π’ спСцификации Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ зависания, Π½ΠΎ ΠΎΠ½ срабатываСт постоянно, ΠΈ, насколько я ΠΌΠΎΠ³Ρƒ ΡΡƒΠ΄ΠΈΡ‚ΡŒ, Π½Π΅Ρ‚ способа ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠ΅ прСкращаСтся. Π― ΠΌΠΎΠ³ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Ρ‹, Π½ΠΎ это каТСтся Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ. Π― Π΄ΡƒΠΌΠ°Π» ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ прилоТСния Π² dropTarget ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β«Π½Π΅Π³Π»ΡƒΠ±ΠΎΠΊΡƒΡŽΒ» ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ, Π½ΠΎ это Π½Π΅ Π΄Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ Ρ†Π΅Π»ΠΈ пСрСтаскивания зависаСт. Π― ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ способ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ DnD Context, Π½ΠΎ Π΄ΠΎ этого Π½Π΅ копался.

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

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° componentWillReceiveProps ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ дСйствиС, ΠΊΠΎΠ³Π΄Π° nextProps.isOver !== this.props.isOver . Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ isOver: monitor.isOver() ΠΊ DropTarget collect() .

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

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, я смогу ΡΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΌΠΎΠΈ собствСнныС события onDrag* Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ. ДобавляСт Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π²Π·Π°ΠΈΠΌΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ΄ΠΎΠΌ ΠΌΠΎΠ΅Π³ΠΎ прилоТСния ΠΈ react-dnd с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ бэкэнд пСрСтаскивания я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ. Но Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° componentWillReceiveProps ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ дСйствиС, ΠΊΠΎΠ³Π΄Π° nextProps.isOver !== this.props.isOver . Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ isOver: monitor.isOver() ΠΊ DropTarget collect() .

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